Book description
Python jest wieloparadygmatowym, wszechstronnym językiem programowania, zoptymalizowanym pod kątem efektywności pracy, czytelności kodu i jakości oprogramowania. Jego popularność rośnie, co wynika z wielości i różnorodności zastosowań oraz z tego, że jest darmowy i łatwo przenośny, można się go szybko nauczyć, a tworzenie kodu Pythona sprawia sporo przyjemności. Wszystkie te cechy dają zespołom deweloperskim strategiczną przewagę w dużych i małych projektach. Aby wykorzystać zalety Pythona, konieczne jest zdobycie solidnych podstaw tego języka, a następnie dogłębne zrozumienie bardziej zaawansowanych koncepcji i porządne ich przećwiczenie podczas pisania własnego kodu.
To kompleksowy podręcznik do nauki programowania w Pythonie. Jego piąte wydanie zostało gruntownie zaktualizowane i rozbudowane o dodatkowe treści. Omówiono tu najnowsze wersje Pythona w liniach 3.X i 2.X, czyli 3.3 i 2.7, i dodano opisy nowych lub rozszerzonych mechanizmów, takich jak obsługa formatu JSON, moduł timeit, pakiet PyPy, metoda os.popen, generatory, rekurencje, słabe referencje, atrybuty i metody __mro__, __iter__, super, __slots__, metaklasy, deskryptory, funkcja random, pakiet Sphinx i wiele innych. W książce znalazło się mnóstwo ćwiczeń, quizów, pomocnych ilustracji oraz przykładów kodu. Jest to kompendium dla każdego, kto chce szybko zacząć programować w Pythonie i tworzyć wydajny kod o wysokiej jakości.
W tej książce przedstawiono między innymi:
składnię Pythona i koncepcje związane z iteracjami
dokładny opis ważniejszych wbudowanych typów obiektów i ich możliwości
struktury programistyczne wyższego poziomu
programowanie funkcyjne i programowanie zorientowane obiektowo
zaawansowane zagadnienia dla profesjonalistów
Już dziś zacznij pisać znakomity kod w Pythonie!
Table of contents
- Przedmowa
- Część I Wprowadzenie
-
Rozdział 1. Pytania i odpowiedzi dotyczące Pythona
- Dlaczego ludzie używają Pythona?
- Czy Python jest językiem skryptowym?
- Jakie są wady języka Python?
- Kto dzisiaj używa Pythona?
- Co mogę zrobić za pomocą Pythona?
- Jak Python jest rozwijany i wspierany?
- Jakie są techniczne mocne strony Pythona?
- Jak Python wygląda na tle innych języków?
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
- Rozdział 2. Jak Python wykonuje programy?
-
Rozdział 3. Jak wykonuje się programy?
-
Interaktywny wiersz poleceń
- Uruchamianie sesji interaktywnej
- Ścieżka systemowa
- Nowe opcje systemu Windows w wersji 3.3: PATH, Launcher
- Gdzie zapisywać programy — katalogi z kodem źródłowym
- Czego nie wpisywać — znaki zachęty i komentarze
- Interaktywne wykonywanie kodu
- Do czego służy sesja interaktywna
- Uwagi praktyczne — wykorzystywanie sesji interaktywnej
- Systemowy wiersz poleceń i pliki źródłowe
- Skrypty wykonywalne w stylu uniksowym — #!
- Klikanie ikon plików
- Importowanie i przeładowywanie modułów
- Wykorzystywanie funkcji exec do wykonywania plików modułów
- Interfejs użytkownika środowiska IDLE
- Inne środowiska IDE
- Inne opcje wykonywania kodu
- Jaką opcję wybrać?
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
- Sprawdź swoją wiedzę — ćwiczenia do części pierwszej
-
Interaktywny wiersz poleceń
- Część II Typy i operacje
- Rozdział 4. Wprowadzenie do typów obiektów Pythona
-
Rozdział 5. Typy liczbowe
- Podstawy typów liczbowych Pythona
-
Liczby w akcji
- Zmienne i podstawowe wyrażenia
- Formaty wyświetlania liczb
- Porównania — zwykłe i łączone
- Dzielenie — klasyczne, bez reszty i prawdziwe
- Precyzja liczb całkowitych
- Liczby zespolone
- Notacja szesnastkowa, ósemkowa i dwójkowa — literały i konwersje
- Operacje na poziomie bitów
- Inne wbudowane narzędzia numeryczne
- Inne typy liczbowe
- Rozszerzenia numeryczne
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
- Rozdział 6. Wprowadzenie do typów dynamicznych
-
Rozdział 7. Łańcuchy znaków
- Co znajdziesz w tym rozdziale
- Łańcuchy znaków — podstawy
- Literały łańcuchów znaków
- Łańcuchy znaków w akcji
- Metody łańcuchów znaków
- Wyrażenia formatujące łańcuchy znaków
-
Formatowanie łańcuchów z użyciem metody format
- Podstawy
- Używanie kluczy, atrybutów i przesunięć
- Zaawansowana składnia wywołań metody format
- Przykłady zaawansowanego formatowania łańcuchów znaków z użyciem metody format
- Porównanie metody format z wyrażeniami formatującymi
-
Dlaczego miałbyś korzystać z metody format
- Dodatkowe możliwości: wbudowane funkcje czy ogólne techniki programowania
- Elastyczna składnia odwołań: dodatkowa złożoność i nakładanie się funkcjonalności
- Jawne odwołania do wartości: teraz opcjonalne i prawdopodobnie nie będą używane
- Nazwy metod i argumenty neutralne kontekstowo — estetyka kodu kontra zastosowania praktyczne
- Funkcje a wyrażenia: niewielka wygoda
- Generalne kategorie typów
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
-
Rozdział 8. Listy oraz słowniki
- Listy
- Listy w akcji
- Słowniki
- Słowniki w akcji
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
-
Rozdział 9. Krotki, pliki i wszystko inne
- Krotki
-
Pliki
- Otwieranie plików
- Wykorzystywanie plików
- Pliki w akcji
- Pliki tekstowe i binarne — krótka historia
- Przechowywanie obiektów Pythona w plikach i przetwarzanie ich
- Przechowywanie natywnych obiektów Pythona — moduł pickle
- Przechowywanie obiektów Pythona w formacie JSON
- Przechowywanie spakowanych danych binarnych — moduł struct
- Menedżery kontekstu plików
- Inne narzędzia powiązane z plikami
- Przegląd i podsumowanie podstawowych typów obiektów
- Pułapki typów wbudowanych
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
- Sprawdź swoją wiedzę — ćwiczenia do części drugiej
- Część III Instrukcje i składnia
- Rozdział 10. Wprowadzenie do instrukcji Pythona
-
Rozdział 11. Przypisania, wyrażenia i wyświetlanie
- Instrukcje przypisania
- Instrukcje wyrażeń
- Polecenia print
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
- Rozdział 12. Testy if i reguły składni
-
Rozdział 13. Pętle while i for
- Pętle while
- Instrukcje break, continue, pass oraz else w pętli
- Pętle for
-
Techniki tworzenia pętli
- Pętle z licznikami — range
- Skanowanie sekwencji — pętla while z funkcją range kontra pętla for
- Przetasowania sekwencji — funkcje range i len
- Przechodzenie niewyczerpujące — range kontra wycinki
- Modyfikowanie list — range kontra listy składane
- Przechodzenie równoległe — zip oraz map
- Generowanie wartości przesunięcia i elementów — enumerate
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
- Rozdział 14. Iteracje i listy składane
-
Rozdział 15. Wprowadzenie do dokumentacji
- Źródła dokumentacji Pythona
- Często spotykane problemy programistyczne
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
- Sprawdź swoją wiedzę — ćwiczenia do części trzeciej
- Część IV Funkcje i generatory
- Rozdział 16. Podstawy funkcji
-
Rozdział 17. Zasięgi
- Podstawy zasięgów w Pythonie
- Instrukcja global
- Zasięgi a funkcje zagnieżdżone
- Instrukcja nonlocal w Pythonie 3.x
- Czemu służą zmienne nonlocal? Opcje zachowania stanu
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
-
Rozdział 18. Argumenty
- Podstawy przekazywania argumentów
- Specjalne tryby dopasowywania argumentów
- Przykład z funkcją obliczającą minimum
- Uogólnione funkcje działające na zbiorach
- Emulacja funkcji print z Pythona 3.0
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
- Rozdział 19. Zaawansowane zagadnienia dotyczące funkcji
-
Rozdział 20. Listy składane i generatory
- Listy składane i narzędzia funkcyjne
-
Funkcje i wyrażenia generatorów
- Funkcje generatorów — yield kontra return
- Wyrażenia generatorów — obiekty iterowalne spotykają złożenia
- Funkcje generatorów a wyrażenia generatorów
- Generatory są obiektami o jednoprzebiegowej iteracji
- Generowanie wyników we wbudowanych typach, narzędziach i klasach
- Przykład — generowanie mieszanych sekwencji
- Nie nadużywaj generatorów: reguła EIBTI
- Przykład — emulowanie funkcji zip i map za pomocą narzędzi iteracyjnych
- Podsumowanie obiektów składanych
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
-
Rozdział 21. Wprowadzenie do pomiarów wydajności
- Pomiary wydajności iteracji
- Mierzenie czasu iteracji z wykorzystaniem modułu timeit
- Inne zagadnienia związane z mierzeniem szybkości działania kodu — test pystone
- Pułapki związane z funkcjami
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
- Sprawdź swoją wiedzę — ćwiczenia do części czwartej
- Część V Moduły i pakiety
- Rozdział 22. Moduły — wprowadzenie
-
Rozdział 23. Podstawy tworzenia modułów
- Tworzenie modułów
- Używanie modułów
- Przestrzenie nazw modułów
- Przeładowywanie modułów
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
-
Rozdział 24. Pakiety modułów
- Podstawy importowania pakietów
- Przykład importowania pakietu
- Do czego służy importowanie pakietów
- Względne importowanie pakietów
- Pakiety przestrzeni nazw w Pythonie 3.3
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
-
Rozdział 25. Zaawansowane zagadnienia związane z modułami
- Koncepcje związane z projektowaniem modułów
- Ukrywanie danych w modułach
- Włączanie opcji z przyszłych wersji Pythona: __future__
- Mieszane tryby użycia — __name__ oraz __main__
- Przykład — kod działający w dwóch trybach
- Modyfikacja ścieżki wyszukiwania modułów
- Rozszerzenie as dla instrukcji import oraz from
- Przykład — moduły są obiektami
- Importowanie modułów z użyciem nazwy w postaci ciągu znaków
- Przykład — przechodnie przeładowywanie modułów
-
Pułapki związane z modułami
- Kolizje nazw modułów: pakiety i importowanie względne w pakietach
- W kodzie najwyższego poziomu kolejność instrukcji ma znaczenie
- Instrukcja from kopiuje nazwy, jednak łącza już nie
- Instrukcja from * może zaciemnić znaczenie zmiennych
- Funkcja reload może nie mieć wpływu na obiekty importowane za pomocą from
- Funkcja reload i instrukcja from a testowanie interaktywne
- Rekurencyjne importowanie za pomocą from może nie działać
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
- Sprawdź swoją wiedzę — ćwiczenia do części piątej
- Część VI Klasy i programowanie zorientowane obiektowo
- Rozdział 26. Programowanie zorientowane obiektowo — wprowadzenie
- Rozdział 27. Podstawy tworzenia klas
-
Rozdział 28. Bardziej realistyczny przykład
- Krok 1. — tworzenie instancji
- Krok 2. — dodawanie metod
- Krok 3. — przeciążanie operatorów
- Krok 4. — dostosowywanie zachowania za pomocą klas podrzędnych
- Krok 5. — dostosowanie do własnych potrzeb także konstruktorów
- Krok 6. — wykorzystywanie narzędzi do introspekcji
- Krok 7. i ostatni — przechowywanie obiektów w bazie danych
- Przyszłe kierunki rozwoju
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
-
Rozdział 29. Szczegóły kodowania klas
- Instrukcja class
- Metody
- Dziedziczenie
-
Przestrzenie nazw — cała historia
- Proste nazwy — globalne, o ile nie są przypisane
- Nazwy atrybutów — przestrzenie nazw obiektów
- Zen przestrzeni nazw Pythona — przypisania klasyfikują zmienne
- Klasy zagnieżdżone — jeszcze kilka słów o regule LEGB
- Słowniki przestrzeni nazw — przegląd
- Łącza przestrzeni nazw — przechodzenie w górę drzewa klas
- Raz jeszcze o notkach dokumentacyjnych
- Klasy a moduły
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
-
Rozdział 30. Przeciążanie operatorów
- Podstawy
- Indeksowanie i wycinanie — __getitem__ i __setitem__
- Iteracja po indeksie — __getitem__
- Obiekty iteratorów — __iter__ i __next__
- Test przynależności — __contains__, __iter__ i __getitem__
- Dostęp do atrybutów — __getattr__ oraz __setattr__
- Reprezentacje łańcuchów — __repr__ oraz __str__
- Dodawanie prawostronne i miejscowa modyfikacja: metody __radd__ i __iadd__
- Wywołania — __call__
- Porównania — __lt__, __gt__ i inne
- Testy logiczne — __bool__ i __len__
- Destrukcja obiektu — __del__
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
-
Rozdział 31. Projektowanie z użyciem klas
- Python a programowanie zorientowane obiektowo
- Programowanie zorientowane obiektowo i dziedziczenie — związek „jest”
- Programowanie zorientowane obiektowo i kompozycja — związki typu „ma”
- Programowanie zorientowane obiektowo a delegacja — obiekty „opakowujące”
- Pseudoprywatne atrybuty klas
- Metody są obiektami — z wiązaniem i bez wiązania
- Klasy są obiektami — uniwersalne fabryki obiektów
-
Dziedziczenie wielokrotne — klasy mieszane
-
Tworzenie klas mieszanych
- Odczyt listy atrybutów obiektu — __dict__
- Wydobywanie atrybutów odziedziczonych z użyciem dir()
- Wypisywanie atrybutów dla każdego obiektu w drzewie klas
- Uruchomienie kodu wyświetlającego drzewo
- Inny przykład użycia: wyświetlenie nazw zawierających znaki podkreślenia
- Inny przykład użycia: uruchomienie kodu z większymi modułami
- Moduł kolektora
- Miejsce na udoskonalenia: algorytm MRO, sloty, interfejsy graficzne
-
Tworzenie klas mieszanych
- Inne zagadnienia związane z projektowaniem
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
-
Rozdział 32. Zaawansowane zagadnienia związane z klasami
- Rozszerzanie typów wbudowanych
- Klasy w nowym stylu
- Nowości w klasach w nowym stylu
- Nowości w klasach w nowym stylu
- Metody statyczne oraz metody klasy
- Dekoratory i metaklasy — część 1.
-
Wbudowana funkcja super: zmiana na lepsze czy na gorsze?
- Wielka debata o funkcji super
- Tradycyjny, uniwersalny i ogólny sposób wywoływania klasy nadrzędnej
- Podstawy i kompromisy użycia funkcji super
- Zalety funkcji super: zmiany drzewa i kierowania metod
- Zmiana klasy w trakcie działania programu a funkcja super
-
Kooperatywne kierowanie metod w drzewie wielokrotnego dziedziczenia
- Podstawy: kooperatywne wywołanie funkcji super w akcji
- Ograniczenie: wymóg zakotwiczenia łańcucha wywołań
- Zakresy: model „wszystko lub nic”
- Elastyczność założenia dotyczącego kolejności wywołań
- Dostosowywanie: zastąpienie metody
- Sprzęganie: zastosowanie w mieszaniu klas
- Dostosowywanie: wymóg takich samych argumentów
- Podsumowanie funkcji super
- Pułapki związane z klasami
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
- Sprawdź swoją wiedzę — ćwiczenia do części szóstej
- Część VII Wyjątki oraz narzędzia
- Rozdział 33. Podstawy wyjątków
- Rozdział 34. Szczegółowe informacje dotyczące wyjątków
- Rozdział 35. Obiekty wyjątków
-
Rozdział 36. Projektowanie z wykorzystaniem wyjątków
- Zagnieżdżanie programów obsługi wyjątków
-
Zastosowanie wyjątków
- Wychodzenie z głęboko zagnieżdżonych pętli: instrukcja go to
- Wyjątki nie zawsze są błędami
- Funkcje mogą sygnalizować warunki za pomocą raise
- Zamykanie plików oraz połączeń z serwerem
- Debugowanie z wykorzystaniem zewnętrznych instrukcji try
- Testowanie kodu wewnątrz tego samego procesu
- Więcej informacji na temat funkcji sys.exc_info
- Wyświetlanie błędów i śladów stosu
- Wskazówki i pułapki dotyczące projektowania wyjątków
- Podsumowanie podstaw języka Python
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
- Sprawdź swoją wiedzę — ćwiczenia do części siódmej
- Część VIII Zagadnienia zaawansowane
-
Rozdział 37. Łańcuchy znaków Unicode oraz łańcuchy bajtowe
- Zmiany w łańcuchach znaków w Pythonie 3.x
- Podstawy łańcuchów znaków
- Podstawy kodowania ciągów znaków
- Kod łańcuchów znaków Unicode
- Wykorzystywanie obiektów bytes z Pythona 3.x
- Obiekt bytearray w wersji 3.x (oraz 2.6 lub nowszej)
- Wykorzystywanie plików tekstowych i binarnych
- Wykorzystywanie plików Unicode
- Inne zmiany w narzędziach do przetwarzania łańcuchów znaków w Pythonie 3.x
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
-
Rozdział 38. Zarządzane atrybuty
- Po co zarządza się atrybutami
- Właściwości
- Deskryptory
- Metody __getattr__ oraz __getattribute__
- Przykład — sprawdzanie poprawności atrybutów
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
-
Rozdział 39. Dekoratory
- Czym jest dekorator
- Podstawy
- Kod dekoratorów funkcji
- Kod dekoratorów klas
- Bezpośrednie zarządzanie funkcjami oraz klasami
-
Przykład — atrybuty „prywatne” i „publiczne”
- Implementacja atrybutów prywatnych
- Szczegóły implementacji I
- Uogólnienie kodu pod kątem deklaracji atrybutów jako publicznych
- Szczegóły implementacji II
- Znane problemy
- W Pythonie nie chodzi o kontrolę
- Przykład — sprawdzanie poprawności argumentów funkcji
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
-
Rozdział 40. Metaklasy
- Tworzyć metaklasy czy tego nie robić?
- Model metaklasy
- Deklarowanie metaklas
- Tworzenie metaklas
- Instancje a dziedziczenie
- Metody metaklas
- Przykład — dodawanie metod do klas
- Przykład — zastosowanie dekoratorów do metod
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę — quiz
- Sprawdź swoją wiedzę — odpowiedzi
- Rozdział 41. Wszystko, co najlepsze
- Dodatki
- Dodatek A Instalacja i konfiguracja
- Dodatek B Uruchamianie Pythona 3.x w systemie Windows
- Dodatek C Zmiany w języku Python a niniejsza książka
- Dodatek D Rozwiązania ćwiczeń podsumowujących poszczególne części książki
Product information
- Title: Python
- Author(s):
- Release date: March 2020
- Publisher(s): Helion
- ISBN: 9788328391703
You might also like
book
Python
Python nie jest językiem idealnym, jednak przybywa programistów, którzy uważają go za bliski ideału. Wyróżnia się …
book
Python
To kompleksowy podręcznik do nauki programowania w Pythonie. Jego piąte wydanie zostało gruntownie zaktualizowane i rozbudowane …
book
Fast Python
Master Python techniques and libraries to reduce run times, efficiently handle huge datasets, and optimize execution …
book
Python Tools for Scientists
Python Tools for Scientists introduces you to the most popular coding tools for scientific research, such …