Professional Documents
Culture Documents
2016python-Spis Tresci
2016python-Spis Tresci
Anna Cena
Maciej Bartoszuk
Marek Gągolewski
Maciej Bartoszuk
Anna Cena
Przedmowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XI
1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. J˛ezyk i środowisko Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1. Instalacja dystrybucji środowiska Python . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2. Instalacja pakietów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Notatniki Jupyter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1. Tryby pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2. Najważniejsze skróty klawiszowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.3. Podstawy j˛ezyka Markdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3. Pierwsze kroki w j˛ezyku Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2. Typy skalarne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1. Liczby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.1. Operatory arytmetyczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.2. Konwersja typów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.3. Tworzenie obiektów nazwanych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.4. Funkcje wbudowane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.5. Pola i metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.6. Arytmetyka zmiennopozycyjna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2. Wartości logiczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.1. Operatory relacyjne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.2. Operatory logiczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3. Napisy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.1. Tworzenie napisów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.2. Podstawowe operacje na napisach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2. Zarzadzanie
˛ elementami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.1. Wybieranie elementów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.2. Modyfikacja elementów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.3. Dodawanie i usuwanie elementów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2.4. Kopiowanie referencji, kopiowanie płytkie a gł˛ebokie . . . . . . . . . . . . . . . . . 41
3.3. Obiekty iterowalne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4. Działania na obiektach iterowalnych i typu sekwencyjnego . . . . . . . . . . . . . . . . . . . 47
3.4.1. Podstawowe metody i funkcje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.4.2. Krotki identyfikatorów po lewej stronie operatora przypisania . . . . . . . . . . . . . 50
3.4.3. Wyrażenia listotwórcze i generatory . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4.4. Formatowanie napisów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4. Słowniki i zbiory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.1. Słowniki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.1.1. Tworzenie słowników . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.1.2. Podstawowe metody i funkcje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.2. Zbiory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.2.1. Tworzenie zbiorów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.2.2. Podstawowe metody i funkcje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5. Instrukcje sterujace
˛ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.1. Instrukcja warunkowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2. P˛etle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2.1. P˛etla while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.2.2. P˛etla for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.2.3. Instrukcje break i continue oraz blok else w p˛etlach . . . . . . . . . . . . . . . . 69
5.3. Obsługa wyjatków˛ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.3.1. Zgłaszanie wyjatków ˛ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.3.2. Rodzaje wyjatków ˛ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.3.3. Wychwytywanie wyjatków ˛ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6. Funkcje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.1. Definiowanie funkcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.1.1. Dokumentowanie funkcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.1.2. Wartość zwracana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.1.3. Wyrażenia lambda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.2. Parametry i argumenty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.2.1. Sposób przekazywania argumentów . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.2.2. Sprawdzanie poprawności argumentów . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.2.3. Dopasowywanie argumentów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.2.4. Parametry z argumentami domyślnymi . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.2.5. Rozpakowywanie argumentów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.2.6. Parametry specjalne *args i **kwargs . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.3. Zasi˛eg zmiennych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.3.1. Zmienne lokalne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.3.2. Zmienne globalne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.3.3. Zmienne nielokalne, fabryki funkcji i domkni˛ecia . . . . . . . . . . . . . . . . . . . . 90
6.4. Pakiety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
SPIS TREŚCI VII
II Przetwarzanie danych
Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Skorowidz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363