.. string += list[i]
PODSTAWY PYTHONA
...
>>> print string
Python
Kolejny przykład wykorzystuje funkcję enumerate(string) do utworzenia tymczasowej sekwencji. Funkcja enumerate zwraca wyliczenie w formie (0, s[0]), (1, s[1]) i tak dalej, aż do końca sekwencji string, tak by pętla for mogła przypisać zarówno wartości i, jak i ch dla każdej iteracji w celu utworzenia słownika:
>>> dict = {}
>>> for i,ch in enumerate(string):
... dict[i] = ch
...
>>> print dict
{0: 'P', 1: 'y', 2: 't', 3: 'h', 4: 'o', 5: 'n'}
Poniższy przykład wykorzystuje słownik jako sekwencję w celu wyświetlenia zawartości słownika:
>>> for key in dict:
... print key, '=', dict[key]
...
27
Podstawy składni Pythona
0 = P
1 = y
2 = t
3 = h
ROZDZIAŁ 1
4 = o
5 = n
Python udostępnia instrukcję break w celu przerwania wykonywania i wyjścia z bieżącej pętli. Zawiera także instrukcję continue, która przerywa wykonywanie bieżą-
cej iteracji i rozpoczyna kolejną iterację bieżącej pętli.
Poniższy przykład pokazuje użycie instrukcji break oraz continue:
>>> word = "Pithon. Rozmówki"
>>> string = ""
>>> for ch in word:
... if ch == 'i':
... string +='y'
... continue
... if ch == ' ':
PODSTAWY PYTHONA
... break
... string += ch
...
>>> print string
Python.
UWAGA
Po pętlach for i while można dodać instrukcję else, tak samo jak w przypadku instrukcji if. Instrukcja else jest wykonywana po tym, jak pętla z powodzeniem zakończy wszystkie iteracje. Jeśli napotykana jest instrukcja break, else nie jest wykonywane.
28
ROZDZIAŁ 1
Podstawy składni Pythona
Obecnie nie ma w Pythonie instrukcji przełączającej (ang.
switch). Najczęściej nie jest to problemem i można sobie poradzić dzięki serii instrukcji if-elif-else. Istnieje jednak wiele innych sposobów radzenia sobie z tym brakiem.
Poniższy przykład pokazuje, jak można utworzyć prostą instrukcję przełączającą w Pythonie1:
>>> def a(s):
... print s
...
>>> def switch(ch):
... try:
... {'1': lambda : a("jeden"), PODSTAWY PYTHONA
... '2': lambda : a("dwa"),
... '3': lambda : a("trzy"),
... 'a': lambda : a("Litera a")
... }[ch]()
... except KeyError:
... a("Nie znaleziono klucza")
...
>>> switch('1')
jeden
>>> switch('a')
Litera a
>>> switch('b')
Nie znaleziono klucza
1 Warto zauważyć, że od dawna rozważano usunięcie notacji lambda z Pythona począwszy od przyszłej wersji 3.0; aktualnie nie zapowiada się, by miało się tak stać (PEP 3099)
— przyp. tłum.
29
Obiekty, moduły, klasy i funkcje Pythona Obiekty, moduły,
klasy i funkcje Pythona
ROZDZIAŁ 1
Niniejszy podrozdział poświęcony jest omówieniu podstawowych koncepcji związanych z obiektami, modułami, klasami oraz funkcjami języka Python. Podrozdział ten zakłada, że Czytelnik posiada podstawowe zrozumienie języków zorientowanych obiektowo, i ma dostarczyć wy-starczającą ilość informacji, by możliwe było rozpoczęcie pracy z Pythonem oraz wykorzystywanie i tworzenie skom-plikowanych modułów i klas.
Wykorzystywanie obiektów
Python jest zbudowany wokół koncepcji „obiektu”. Każdy fragment danych przechowywany i wykorzystywany przez Pythona jest obiektem. Listy, łańcuchy znaków, słowniki, PODSTAWY PYTHONA
liczby, klasy, pliki, moduły i funkcje — wszystkie one są obiektami.
Każdy obiekt w Pythonie posiada swoją tożsamość, typ oraz wartość. Tożsamość (ang. identity) wskazuje na lo-kalizację obiektu w pamięci. Typ (ang. type) opisuje re-prezentację obiektu dla Pythona (więcej w tabeli 1.1).
Wartość (ang. value) obiektu to po prostu dane w nim prze-chowywane.
Poniższy przykład pokazuje, w jaki sposób można uzyskać dostęp do tożsamości, typu i wartości obiektu w sposób programowy za pomocą odpowiednio: id(object), type (object) oraz nazwy zmiennej:
30
ROZDZIAŁ 1
Obiekty, moduły, klasy i funkcje Pythona
>>> l = [1,2,3]
>>> print id(l)
9267480
>>> print type(l)
>>> print l
[1, 2, 3]
Po utworzeniu obiektu, tożsamość i typ nie mogą być zmienione. Jeśli wartość obiektu się zmienia, jest on uważany za obiekt zmienny (ang. mutable). Jeśli wartość obiektu nie może być modyfikowana, jest uznawany za obiekt niezmienny (ang. immutable).
PODSTAWY PYTHONA
Niektóre obiekty posiadają także atrybuty i metody. Atrybuty są wartościami powiązanymi z obiektem. Metody to wywoływalne funkcje, które wykonują operacje na obiekcie.
Dostęp do atrybutów i metod obiektu uzyskuje się poprzez wykorzystanie składni z kropkami (.):
>>> class test(object):
... def printNum(self):
... print self.num
...
>>> t = test()
>>> t.num = 4
>>> t.printNum()
4
Wykorzystywanie modułów
Cały Python zbudowany jest z modułów. Moduły są plikami Pythona, które pochodzą z podstawowych bibliotek dostarczanych wraz z tym językiem, a także modułów 31