PYTHON – PODSTAWY I STRUKTURY DANYCH
Instalacja
Środowisko, struktura, zastosowania, historia Typy danych i ich konwersja
Liczby Łańcuchy Listy
Krotki
Słowniki
Zbiory
Typy danych
Kategoria typu Nazwa typu Opis
None types.NoneType Obiekt None (null)
Liczby bool Boolean (True lub False)
int Liczba całkowita
long Długa liczba całkowita
float Liczba zmiennoprzecinkowa complex Liczby zespolone
Zbiory set Zbiór niezmienny
frozenset Zbiór zmienny
Sekwencje str Łańcuch znaków
unicode Łańcuch znaków UNICODE
basestring Typ bazowych wszystkich łańcuchów znaków
list Lista
tuple Krotka
xrange Sekwencja niezmienna xrange
Odwzorowania dict Słownik
Pliki file Plik
Moduły types.ModuleType Moduł
Klasy object Rodzic wszystkich klas
Weryfikacja typu
type(x) – określa typ obiektu x
isinstance(x,y) –czy x jest instancją typu (obiektu) y
id(x) –adres przechowywania w pamięci x
coerce(x,y) – wyrównianie typów x i y
(tylko dla typów liczbowych)
Funkcje konwersji typów
Funkcja Konwersja
chr() int/ long/ float/ complex -> znak o kodzie ASCII
unichr() int/ long/ float/ complex -> znak UNICODE
complex() int/ long/ float/string -> complex
ord() string -> kod ASCII znaku
float() int/ long/complex/ string -> float int() float/complex/ string -> int
str() wszystkie -> string
eval() oblicza string jeśli łańcuch jest zapisem wyrażenia algebraicznego
tuple() wszystkie -> krotka list() wszystkie -> lista long() int/ float/complex/ string -> long
Operacje na danych
liczbowych
Operacje na bitach i operacje logiczne
Operacja Wynik
x|y bitowa alternatywa x i y
x^y bitowa różnica symetryczna x i y
x&y bitowa koniunkcja x i y
x<<n przesunięcie bitowe x w lewo o n bitów x>>n przesunięcie bitowe o n bitów w prawo
~x uzupełnienie bitowe x
Operacja Wynik
x or y jeśli x jest fałszem to y w przeciwnym
przypadku x
x and y jeśli x jest fałszem to x, w
przeciwnym przypadku y
not x Jeśli x jest fałszem to True w
przeciwnym przypadku False
Operatory porównania
Operator Znaczenie
< mniejsze
<= mniejsze lub równe
> większe
>= większe lub równe
= = równe
!= różne
<> różne
is identyfikacja obiektu
is not zanegowanie identyfikacji
obiektu
Wycinanie sekwencji
Metody łańcuchów
Metody łańcuchów s.capitalize() Zamienia pierwszy znak (jak jest literą) na dużą litere
s.center(width [, pad]) Centruje łańcuch w obszarze o długości width wypełniając brakujące elementy znakami pad s.count(sub [,start [,end]]) Liczy ilość pojawień się podłańcucha sub w s
s.decode([encoding [,errors]]) dekoduje łańcuch i zwraca łańcuch Unicode s.encode([encoding [,errors]]) Zwraca zakodowaną wersję łańcucha s.endswith(suffix[,start [,end]]) Sprawdza koniec łańcucha dla przyrostka s.expandtabs([tabsize]) Zastępuje znaki tab przez spacje
s.find(sub [, start [,end]]) Znajduje pierwsze pojawienie się podłańcucha sub w łańcuchu s.index(sub [, start [,end]]) Znajduje pierwsze pojawienie się różmicy (błędu) między łańcuchami s.isalnum() Sprawdza czy wszystkie znaki są alfanumeryczne
s.isalpha() Sprawdza czy wszystkie znaki są literami s.isdigit() Sprawdza czy wszystkie znaki są cyframi
s.islower() Sprawdza czy wszystkie znaki są małymi literami s.isspace() Sprawdza czy wszystkie znaki są spacjami
s.istitle() Sprawdza czy łańcuch jest tytułem (zaczyna się od dużej litery) s.isupper() Sprawdza czy wszystkie znaki są dużymi literami
s.join(t) Łączy łańcuchy s i t
s.ljust(width [, fill]) Daje lewostronne wcięcie w s długości width.
s.lower() Zamienia litery na małe
s.lstrip([chrs]) Usuwa początkowe spacje
s.replace(old,new[,maxreplace]) Podłańcuch new zastępuje podłańcuch old w s s.rfind(sub [,start [,end]]) Znajduje ostatnie pojawienie się podłańcucha
s.rindex(sub [,start [,end]]) Znajduje miejsce ostatniego pojawienia się lub zwraca sygnalizację błędu s.rjust(width [, fill]) Prawostronne wyrównanie tekstu s w łańcuch długości width.
s.rsplit([sep [,maxsplit]]) Zamienia łańcuch na listę, sep jest znakiem, który dzieli łań- cuch na podłańcuchy, maxsplit to maksymalna liczba rozbić
s.rstrip([chrs]) Usuwa spacje z przodu i tyłu s.split([sep [,maxsplit]]) Tak jak split
s.splitlines([keepends]) Rozdziela łańcuch tak jak split gdy punktem rozdziału jest znak nowej linii s.startswith(prefix[,start
[,end]]) Sprawdza czy łańcuch zaczyna się od prefiksu prefix s.strip([chrs]) Usuwa wiodące i końcowe spacje lub znaki z chrs s.swapcase() Zamienia duże na małe litery i vice versa s.title() Zwraca wersję tytułową (z dużej litery)
s.translate(table[,deletechars]) Tłumaczy (zamienia) łańcuch używając tabeli zamiany, usuwa znaki deletechar
s.upper() Zamienia litery na duże
s.zill(width) wypełnia łańcuch zerami z lewej aż do określonej szerokości
Łańcuchy surowe i UNICODE
Znak sterujący
Interpretacja Znak
sterujący
Interpretacja
\ Kontynuacja w nowej linii \\ Kreska ukośna
\’ Pojedynczy apostrof \” Podwójny apostrof
\a Sygnał dźwiękowy \b Backspace
\e Escape \0 Null
\n Nowa linia \v Pozioma tabulacja
\t Pionowa tabulacja \r Powrót karetki
\000 Wartość ósemkowa (\000-\377) \uxxxx Znak unicode (\u0000-\uffff)
\Uxxxxxxxx Wartość Unicode (\U00000000-
\Uffffffff) N\{Nazwa} Nazwa znaku Unicode
\xhh Wartość heksadecym.(\x00-\xff)
Formatowanie łańcuchów
Konwersja Znaczenie
d,i Liczba całkowita dziesiętna lub długa ze znakiem u Liczba dziesiętna bez znaku
o Liczba ósemkowa bez znaku całkowita lub długa
x Liczba szesnastkowa bez znaku (małe litery) lub długa X Liczba szesnastkowa bez znaku (wielkie litery) lub długa e,E Liczba zmiennoprzecinkowa w formacie wykładniczym
(małe ‘e’ lub duże ‘E’) „m.dddddde±xx” lub
„m.ddddddE±xx”1
f Liczba zmiennoprzecinkowa w formacie dziesiętnym
„m.dddddd”
g,G Zastosuj konwersję „e” jeśli wykładnik jest mniejszy niż -4 lub większy od wartości precyzji, w przeciwnym wypadku zastosuj „f”
c Pojedynczy znak (liczba całkowita lub napis jednoznakowy) r Napis (konwertuje dowolny obiekt z wykorzystaniem
funkcji repr())2
s Napis (konwertuje dowolny obiekt z wykorzystaniem funkcji str())3,4
\% Brak konwersji, wynik zawiera znak „%”.
Szablony tekstów
Formatowanie łańcucha
a=u”””Drogi Panie %(nazwisko)s, proszę zapłacić
%(kwota)3.2f zł. Andrzej Krajka””
print a % {’nazwisko’: ’Kowalski’,’kwota’:200.00}
Inne formatowanie
import string
a = string.Template(u”Drogi Panie $nazwisko, proszę zapłacić
$kwota zł. Andrzej Krajka”””)
print a.substitute({’nazwisko’: ’Kowalski’,
’przedmiot’: ’blender’, ’kwota’: „%0.2f” %
50.0})
Listy – sekwencje mutowalne
nazwiska=[”Kowalski”, ”Janowski”,
„Nowak”]
lista=[0, 2.3e-5, ”Ola”, [”string”, 2.1-3j, True ]]
lista1=(1,[2,3],(3,4),(2,),{’a’:
(1,2),2:’b’}) def f1(x):
return x+x def f2(x):
return x*x;
a=[f1,f2]
a[0](5)
Operacje na sekwencjach mutowalnych
Funkcje sekwencji
min(s) Minimalna wartość w s
max(s) Maksymalna wartość w s
Operacje dostępne na sekwencjach mutowalnych (listy)
s[i]=v Podstawienie i-tego elementu
s[i:j]=t Podstawienie elementu/ciągu za podciąg
s[i:j:k]=t Podstawienie elementu/ciągu za podcią
del s[i] Usunięcie elementu
del s[i:j] Usunięcie elementu/podciągu
del s[i:j:k] Usunięcie elementu/podciągu
Metody sekwencji mutowalnych (listy)
s.remove(x) Usuwa pierwsze pojawienie się znaków x z s s.extend(t) Rozszerza listę s przez dodanie elementów t s.sort([cmpfunc [, keyf [, reverse]]])) Sortuje elementy listy (można ustawić jako
procedurę cmpfunc - sposób porównania - funkcję zwracającą liczbę ujemną, 0 lub dodatnią). Można również jako argument podać funkcję keyf, jest to funkcja zmieniająca każdy argument przed sortowaniem (tylko do sortowania) reverse jest bitem czy w zwykłej (0) czy odwrotnej kolejności s.reverse() Zwraca elementy listy w odwrotnej kolejności
list(s) Zamienia obiekt s w listę
s.append(x) Dodaje nowy element x na końcu s
s.count(x) Zlicza pojawienia się podłańcucha x w s
s.index(x [,start [,stop]]) Zwraca najmniejszy i taki, że s[i]= =x,. start i stop to opcjonalne zaznaczenie początku i końca
przeszukiwania łańcucha
s.insert(I,x) Wstawia x w miejscu o indeksie i.
s.pop([i]) Zwraca element i i usuwa go z listy, Jeśli i jest ominięty zwraca się ostatni element