• Nie Znaleziono Wyników

Wykład 2: Metody Łańcuchów

N/A
N/A
Protected

Academic year: 2021

Share "Wykład 2: Metody Łańcuchów"

Copied!
21
0
0

Pełen tekst

(1)

Wykład 2: Metody Łańcuchów

s.capitalize()

s.center(width [, pad])

s.count(sub [,start [,end]]) s.decode([encoding [,errors]]) s.encode([encoding [,errors]]) s.endswith(suffix[,start [,end]]) s.expandtabs([tabsize])

s.find(sub [, start [,end]]) s.index(sub [, start [,end]]) s.isalnum()

s.isalpha() s.isdigit() s.islower() s.isspace() s.istitle() s.isupper() s.join(t)

s.ljust(width [, fill]) s.lower()

s.lstrip([chrs])

s.replace(old,new[,maxreplace]) s.rfind(sub [,start [,end]])

s.rindex(sub [,start [,end]]) s.rjust(width [, fill])

s.rsplit([sep [,maxsplit]]) s.rstrip([chrs])

s.split([sep [,maxsplit]]) s.splitlines([keepends])

s.startswith(prefix[,start [,end]]) s.strip([chrs])

s.swapcase() s.title()

s.translate(table[,deletechars]) s.upper()

s.zill(width)

(2)

Drukowania w Pythonie

 Można wydrukować łańcuch na ekran używając: “print.”

 Używając operatora % w łańcuchu w połączeniu z poleceniem print możemy formatować tekst:.

>>> print “%s xyz %d” % (“abc”, 34) abc xyz 34

print automatycznie dodaje znak nowej linii na końcu łańcucha, chyba, że użyjesz

przecinka

>>> print “abc” >>> print “abc”, “def”

abc abc def

(3)

Znaki formatujące łańcuch

d,i – integer lub long

u – bez znaku integer lub long

o – l. całkowita ósemkowa

X,x – szesnastkowa (duże lub małe litery)

f – zmiennoprzecinkowa

E,e – zmiennoprzecinkowa wykładnicza notacja

g,G- używa e,E dla bardzo małych (<-4) i bardzo dużych wykładników, poza tym f

s – łańcuch (używa str())

r – łańcuch (używa repr())

c – pojedynczy znak

%[(nazwa)][-/+/0/][min szer pola][.ilość cyfr po przec/.max szer pola][litera]

* - zastępuje dowolna cyfrę

% dict % tuple (nie % list)

(4)

Metody wycinania sekwencji

a=”abcdefgh ijklmn op”

b=[1,2,3,4,5,6]

c=(0,-1,-2,-3)

a[-12:-5:2] # ”g jl”

b[:-2] # [1, 2, 3, 4]

c[2] # -2

S e k w e n c j a

0 1 2 3 4 5 6 7 8

0 1 2 3 ... len(s)

-4

len(s) -3

len(s) -2

len(s) -1

-9 -8 -7 -6 -5 -4 -3 -2 -1

-len(s) -len(s)

+1 -len(s)

+2 -len(s)

+3 … -4 -3 -2 -1

(5)

Szablony

import string

a=u"""Szanowny Panie %(nazwisko)s,

W związku z Pana pismem dotyczącym zakupu: %(produkt)s proszę najpierw wpłacić %(kwota)5.2f zł. na konto

%(konto)s. Po otrzymaniu dowodu wpłaty %(produkt)s będzie natychmiast przesłany na Pana adres,

Łączę wyrazy szacunku i powazania, Andrzej Krajka"""

print a % {'nazwisko': 'Kowalski','produkt':'suszarka','kwota':200.00,'konto':2130001231001231}

# --- a = string.Template(u"""Szanowny Panie $nazwisko,

W związku z Pana pismem dotyczącym zakupu: $produkt proszę najpierw wpłacić $kwota zł. na konto

$konto. Po otrzymaniu dowodu wpłaty $produkt będzie natychmiast przesłany na Pana adres,

Łączę wyrazy szacunku i powazania, Andrzej Krajka""" )

print a.substitute({'nazwisko': 'Kowalski','produkt':'suszarka','kwota':'200.00‘, 'konto':2130001231001231})

(6)

Słowniki

Operacja Użycie Działanie

clear dict.clear() nie zwraca wartości, usuwa wszystkie pary klucz:wartość ze słownika dict.

copy dict.copy() zwraca dict, płytkie kopiowanie słownika

fromkeys dict.fromkeys(s[,v]) tworzy słownik dict z kluczami z s i wartościami równymi v.

get dict.get(k[,d]) zwraca dict[k] jeśli k jest indeksem w słowniku, w przeciwnym razie zwraca d.

has_key dict.has_key(klucz1) zwraca True jeśli klucz1 należy do słownika dict, w przeciwnym wypadku zwraca False.

items dict.items() zwraca listę elementów (klucz, wartość).

iteritems dict.iteritems() iterator nad elementami słownika dict.

iterkeys dict.iterkeys() iterator nad kluczami słownika dict.

itervalues dict.itervalues() iterator nad wartościami słownika dict.

keys dict.keys() zwraca listę kluczy

pop dict.pop(klucz[,błąd]) zwraca wartość elementu korespondującego z kluczem i usuwa go ze słownika, jeśli klucza nie ma w słowniku zwraca wartość błąd, a jeśli nie została podana

„zwraca” błąd – KeyError.

popitem dict.popitem() zwraca parę (klucz, wartość) i usuwa ze słownika, a jeśli słownik jest pusty

„zwraca” błąd – KeyError

setdefault dict.setdefault(klucz,błąd) zwraca wartość elementu korespondującego z kluczem, jeśli klucza nie ma w słowniku zwraca wartość błąd i wstawia do słownika parę klucz:błąd

update dict.update(E[,**F]) nie zwraca wartości, aktualizuje dict parami klucz:wartość ze słowników podanych jako parametry.

values dict.values() zwraca listę wartości słownika

(7)

Elementy programowania funkcyjnego: Funkcje

 def fun(x, y, z=3.25, l=None):

 Wywołania

fun(3,5)

t=[2,7,13]

fun(*t)

sl={‘x’:5, ‘y’:3, ‘l’:-7}

fun(**sl)

 Dekoratory

@ gfun

def fun(x, y,z=3.25, l=None):

(8)

Anonimowe funkcje lambda

lambda wykaz argumentów:wyrażenie

t=[lambda x,y:x+y, lambda x,y:x*y, lambda x,y: x//y]

t[0](2,3) # 5 t[2](5,2) # 2

print ‚%2f’ % (lambda x,y: x**y)(2,0.5) # 1.414214 t=’32 56 1 7 12 54’

t=t.split()

t.sort(lambda x,y:cmp(int(x),int(y)))

t # [’1’, ‚7’, ‚12’, ‚32’, ‚54’, ‚56’]

(9)

Elementy programowania funkcyjnego

filter(funkcja, sekwencja) map(funkcja, sekwencja)

reduce(funkcja, sekwencja) COMPREHENSIVE LIST

e=[(x,y,z) for x in a for y in b if y<”c”]

(math.pow(3,y) for y in [2,-1,0,5])

[10*i for i in range(10)]

(10)

Funkcje lambda

def g(x,y):

if y==0:

return float(’inf’) else:

return x+1.0/y

def fmean(a):return reduce(lambda x,y:x+y,a)/len(a), len(a)/reduce(g,a,0), reduce(lambda x,y:x*y,a)**

(1.0/len(a)) fmean(range(10))

fmean([1,3,8,12,29,31,14,5])

(11)

Elementy programowania funkcyjnego

 Funkcje eval (), exec (), execfile() i compile()

eval (str [, globals [, locals] ] )

a = eval(’3*math.sin(3.5+x) + 7.2’)

 a = [3, 5, 10, 13]

exec ”for i in a: print i”

execfile (filename [, globals [, locals]]), compile(str,filename,kind)

 kind- ‘single’, ‘exec’, ‘eval’

(12)

Elementy programowania

obiektowego – przestrzeń nazw

globals() locals()

obiekt.__dict__

 najbardziej zagnieżdżony, w którym najpierw

poszukuje się nazwy, zawiera on nazwy lokalne;

 środkowy, przeszukiwany w następnej kolejności, który zawiera aktualne nazwy globalne modułu

 zewnętrzny (przeszukiwany na końcu) jest zasięgiem

nazw wbu­dowanych

(13)

Klasy

class Konto:

”Prosta klasa”

typ_konta = „Podstawowe” # atrybuty

def __new__(cls, nazwisko, saldo): # Konstruktor

…..

def__init__(self, nazwisko, saldo) : # konstruktor

”Inicjalizacja nowej instancji Konta”

self.nazwisko = nazwisho

self.saldo = saldo

def wpłata(self,kwota): # metody

”Wpłata na konto”

self.saldo = self.saldo + kwota

def wypłata(self,kwota):

”Pobranie z konta”

self.saldo = self.saldo – kwota def info (self):

”Stan konta”

return self.saldo

def __del__(self): # destruktor

….

(14)

Metody statyczne i klasowe

@classmethod

def setCounter(cls, value):

cls.counter = value

class A(object):

counter = 0

@staticmethod

def setCounter(value):

A.counter = value if __name__ ==

‘__main__’: A.setCounter(10)

(15)

Klasy i ich instancje

class VirtualAttributes:

__vdict = None

__vdict_name = locals().keys()[0]

def __init__(self):

self.__dict__[self.__vdict_name] = {}

def __getattr__(self, name):

return self.__vdict[name]

def __setattr__(self, name, value):

self.__vdict[name] = value class A:

def__init__(self):

self.__X = 3 class B(A):

def__init__(self) :

A.__init__(self)

self. X = 37

(16)

Składnia – instrukcje WE/WY

raw_input(”Podaj liczbę: ”) -> string

input(”Podaj liczbę: ”) 

eval(raw_input(”Podaj liczbę: ”)

print x  printf(x) z C

(17)

Składnia – instrukcje warunkowe

a=2 if a==1:

print ”Dziwne 1”

elif a==2:

print ”Normalne”

elif a==3:

print ”Dziwne 3”

else:

print ”Dziwne inne”

(18)

Składnia - pętle

for obiekt in kolekcja:

a=‘napis’

for i,ch in enumerate(a):

xrange(0,100000000, 5) range(100,-2,5)

while warunek:

break

continue

else

(19)

Składnia - Wyjątki

 try:

 do coś

 except IOError, e:

 # Obsługa błędu I/O

 except TypeError, e:

 # Obsługa błędu w typie

 except NameError, e:

 # Obsługa błędu w nazwie

 else:

 # Nie doszło do wyjątku

 finally

 # Pozamiataj

 sys.excepthook()

(20)

Składnia – wyjątki jako klasy

class B:

pass

class C(B):

pass

class D(C):

pass

for c in [B, C, D]:

try:

raise c()

except D:

print ”D”

except C:

print ”C”

except B:

print ”B”

(21)

Składnia – instrukcje assert

 assert test [, data]

 test – funkcja zwracająca True lub False

AssertionError

 __debug__ - stała używana przez assercje

Cytaty

Powiązane dokumenty

Uzgodnienie trasy gazociągu z WUOZ (Wojewódzki Urząd Ochrony Zabytków). b) Jeśli teren jest w strefie ochrony konserwatorskiej – archeologicznej, należy wystąpić o zgodę

To wszystko ostatecznie prowadzi autora do „miękkiego” postulatu, by „czynić swoje” i opisywać – anali- zować – wreszcie interpretować, a jednocześnie poddawać

- jeśli wykonanie zakończyło się poprawnie, to funkcja puts() zwraca ostatni wypisany znak; jeśli wystąpił błąd, to zwraca wartość EOF;.. - przykład

Zaokrąglij dane do jednej cyfry znaczącej oraz oszacuj czas trwania podróży...

Oferty złożone po terminie będą zwrócone wykonawcom bez otwierania, po upływie terminu do wniesienia protestu. 8, zamawiający niezwłocznie zwraca ofertę, która została

- małe ciężarki albo inne małe cosie, których masę znacie albo możecie zmierzyć (może mama ma wagę kuchenną i pozwoli zważyć te cosie?).

Na samochód o masie 1 tony, jadący z prędkością 72 km/h w pewnej chwili zaczęła działać siła o wartości 5000 N przeciwnie do zwrotu prędkości, zmniejszając ją do 36

Biblii, ale w istocie nie są przez jej tekst usprawiedliwione.. Zwróćmy uwagę, że Eilstein rozważa tu interpretację, która wydaje się jej atrakcyjna, ale nie „wczytuje” jej