reklama - zainteresowany?

Python. Wprowadzenie. Wydanie VI - Helion

Python. Wprowadzenie. Wydanie VI
Autor: Mark Lutz
Tytuł oryginału: Learning Python: Powerful Object-Oriented Programming, 6th Edition
Tłumaczenie: Anna Mizerska z wykorzystaniem fragment
ISBN: 978-83-289-2942-5
stron: 1107, Format: 165x235, okładka: mi
Data wydania: 2025-10-01
Księgarnia: Helion

Cena książki: 179,10 zł (poprzednio: 199,00 zł)
Oszczędzasz: 10% (-19,90 zł)

Nakład wyczerpany

Tagi: Python - Programowanie

Nic dziwnego,

Spis treści

Python. Wprowadzenie. Wydanie VI -- spis treści

Przedmowa

Część I. Wprowadzenie

  • 1. Pytania i odpowiedzi dotyczące Pythona
    • Dlaczego ludzie używają Pythona?
      • Jakość oprogramowania
      • Wydajność programistów
    • Czy Python jest językiem skryptowym?
    • Jakie są zatem wady języka Python?
    • Kto dzisiaj używa Pythona?
    • Co mogę zrobić za pomocą Pythona?
      • Programowanie systemowe
      • Graficzne interfejsy użytkownika (GUI) i interfejsy użytkownika (UI)
      • Skrypty internetowe
      • Integracja komponentów
      • Dostęp do baz danych
      • Szybkie prototypowanie
      • Programowanie numeryczne i naukowe
      • I więcej: sztuczna inteligencja, gry, przetwarzanie obrazu, wyszukiwanie danych, testowanie, Excel, aplikacje.
    • Jakie są techniczne mocne strony Pythona?
      • Jest zorientowany obiektowo i funkcyjny
      • Jest darmowy i otwarty
      • Jest przenośny
      • Ma duże możliwości
      • Można go łączyć z innymi językami
      • Jest względnie łatwy w użyciu
      • Jest względnie łatwy do nauczenia się
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 2. Jak Python wykonuje programy?
    • Wprowadzenie do interpretera Pythona
    • Wykonywanie programu
      • Z punktu widzenia programisty
      • Z punktu widzenia Pythona
    • Warianty modeli wykonywania
      • Alternatywne implementacje Pythona
      • Samodzielne pliki wykonywalne
      • Przyszłe możliwości
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 3. Jak uruchamia się programy?
    • Instalacja Pythona
    • Interaktywny kod
      • Uruchamianie interaktywnego środowiska REPL
      • Gdzie uruchamiać programy - katalogi z kodem źródłowym
      • Czego nie wpisywać - znaki zachęty i komentarze
      • Inne środowiska REPL Pythona
      • Interaktywne wykonywanie kodu
      • Do czego służy sesja interaktywna?
    • Pliki źródłowe
      • Pierwszy skrypt
      • Wykonywanie plików z poziomu wiersza poleceń powłoki
      • Sposoby użycia wiersza poleceń
    • Inne sposoby uruchamiania plików
      • Klikanie ikon plików
      • Interfejs użytkownika środowiska IDLE
      • Inne środowiska IDE
      • Aplikacje na smartfony
      • WebAssembly dla przeglądarek
      • Notatniki Jupyter do celów naukowych
      • Kompilatory AOT dla zwiększenia szybkości
      • Uruchamianie kodu w kodzie
      • 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 I
      • Debugowanie kodu w Pythonie

Część II. Obiekty i operacje

  • 4. Wprowadzenie do obiektów Pythona
    • Hierarchia pojęć w Pythonie
    • Dlaczego korzystamy z obiektów wbudowanych?
      • Najważniejsze typy danych w Pythonie
    • Liczby
    • Łańcuchy znaków
      • Operacje na sekwencjach
      • Niezmienność
      • Metody specyficzne dla typu
      • Uzyskiwanie pomocy
      • Inne sposoby kodowania łańcuchów znaków
      • Ciągi znaków w formacie Unicode
    • Listy
      • Operacje na typach sekwencyjnych
      • Operacje specyficzne dla typu
      • Sprawdzanie granic
      • Zagnieżdżanie
      • Listy składane
    • Słowniki
      • Operacje na odwzorowaniach
      • Zagnieżdżanie raz jeszcze
      • Brakujące klucze - testowanie za pomocą if
      • Sortowanie kluczy - pętle for
    • Krotki
      • Do czego służą krotki?
    • Pliki
      • Pliki tekstowe Unicode i binarne
      • Inne narzędzia podobne do plików
    • Inne typy podstawowe
      • Zbiory
      • Wartości logiczne i obiekt None
      • Typy
      • Podpowiedzi typów
      • Klasy definiowane przez użytkownika
      • I wszystko inne
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 5. Typy liczbowe
    • Podstawy typów liczbowych Pythona
      • Literały liczbowe
      • Wbudowane narzędzia liczbowe
    • Operatory wyrażeń Pythona
      • Połączone operatory stosują się do priorytetów
      • Podwyrażenia grupowane są w nawiasach
      • Pomieszane typy poddawane są konwersji
      • Wprowadzenie: przeciążanie operatorów i polimorfizm
    • Liczby w akcji
      • Zmienne i podstawowe wyrażenia
      • Formaty wyświetlania liczb
      • Operatory porównania
      • Operatory dzielenia
      • Precyzja liczb całkowitych
      • Liczby zespolone
      • Notacja szesnastkowa, ósemkowa i dwójkowa
      • Operacje na poziomie bitów
      • Znaki podkreślenia jako separatory w liczbach
      • Inne wbudowane narzędzia numeryczne
    • Inne typy liczbowe
      • Typ Decimal (liczby dziesiętne)
      • Typ Fraction (liczby ułamkowe)
      • Zbiory
      • Wartości Boolean
    • Rozszerzenia numeryczne
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 6. Wprowadzenie do typów dynamicznych
    • Sprawa brakujących deklaracji typu
      • Zmienne, obiekty i referencje
      • Typy powiązane są z obiektami, a nie ze zmiennymi
      • Obiekty są uwalniane
    • Referencje współdzielone
      • Referencje współdzielone a modyfikacje w miejscu
      • Referencje współdzielone a równość
    • Typy dynamiczne są wszędzie
    • Podpowiedzi typów: opcjonalne, nieużywane i po co?
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 7. Łańcuchy znaków
    • Łańcuchy znaków - podstawy
    • Literały łańcuchów znaków
      • Łańcuchy znaków w apostrofach i cudzysłowach są tym samym
      • Sekwencje ucieczki reprezentują znaki specjalne
      • Surowe łańcuchy znaków blokują sekwencje ucieczki
      • Potrójne cudzysłowy i apostrofy kodują łańcuchy znaków będące wielowierszowymi blokami
    • Łańcuchy znaków w akcji
      • Podstawowe operacje
      • Indeksowanie i wycinki
      • Narzędzia do konwersji łańcuchów znaków
      • Modyfikowanie łańcuchów znaków - część I: działania na sekwencjach
    • Metody łańcuchów znaków
      • Składnia wywoływania metod
      • Metody typów znakowych
      • Modyfikowanie łańcuchów znaków - część II: metody łańcuchów znaków
      • Więcej metod łańcuchów znaków - analiza składniowa tekstu
      • Inne często używane metody łańcuchów znaków
    • Formatowanie łańcuchów znaków - triatlon
      • Opcje formatowania łańcuchów znaków
      • Formatowanie z użyciem wyrażeń formatujących
      • Formatowanie łańcuchów z użyciem metody format
      • Podstawy
      • Zaawansowana składnia wywołań metody format
      • Literał formatowania f-string
      • A zwycięzcą jest.
    • Generalne kategorie typów
      • Typy z jednej kategorii współdzielą zbiory operacji
      • Typy mutowalne można modyfikować w miejscu
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 8. Listy i słowniki
    • Listy
    • Listy w akcji
      • Podstawowe operacje na listach
      • Indeksowanie i wycinki
      • Modyfikacja list w miejscu
      • Iteracje po listach i składanie list
    • Słowniki
    • Słowniki w akcji
      • Podstawowe operacje na słownikach
      • Modyfikacja słowników w miejscu
      • Inne metody słowników
      • Inne sposoby tworzenia słowników
      • Słowniki składane
      • Kolejność wstawiania kluczy
      • Operator "sumy" dla słowników
      • Przykład: baza danych o książkach
      • Uwagi na temat korzystania ze słowników
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 9. Krotki, pliki i wszystko inne
    • Krotki
      • Krotki w akcji
      • Dlaczego istnieją listy i krotki?
      • Repetytorium: rekordy - krotki nazwane
    • Pliki
      • Otwieranie plików
      • Wykorzystywanie plików
      • Pliki w akcji
      • Pliki tekstowe i binarne - krótka historia
      • Przechowywanie obiektów Pythona w plikach i ich przetwarzanie
      • Przechowywanie natywnych obiektów Pythona - moduł pickle
      • Przechowywanie obiektów Pythona w formacie JSON
      • Przechowywanie obiektów za pomocą innych narzędzi
      • Menedżery kontekstu plików
      • Inne narzędzia powiązane z plikami
    • Przegląd i podsumowanie podstawowych typów obiektów
      • Elastyczność obiektów
      • Referencje a kopie
      • Porównania, testy równości i prawda
      • Porównywanie słowników
      • Prawda czy fałsz, czyli znaczenie True i False w Pythonie
    • Hierarchie typów Pythona
      • Obiekty typów
    • Inne typy w Pythonie
    • Pułapki typów wbudowanych
      • Przypisanie tworzy referencje, nie kopie
      • Powtórzenie dodaje jeden poziom zagłębienia
      • Uwaga na cykliczne struktury danych
      • Typów niemutowalnych nie można modyfikować w miejscu
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
    • Sprawdź swoją wiedzę - ćwiczenia do części II

Część III. Instrukcje i składnia

  • 10. Wprowadzenie do instrukcji Pythona
    • Raz jeszcze o hierarchii pojęciowej języka Python
      • Instrukcje Pythona
    • Historia dwóch if
      • Co dodaje Python?
      • Co usuwa Python?
      • Skąd bierze się składnia z użyciem wcięć?
      • Kilka przypadków specjalnych
    • Szybki przykład: interaktywne pętle
      • Prosta pętla interaktywna
      • Wykonywanie obliczeń na danych wpisywanych przez użytkownika
      • Obsługa błędów poprzez sprawdzanie danych wejściowych
      • Obsługa błędów za pomocą instrukcji try
      • Kod zagnieżdżony na trzy poziomy głębokości
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 11. Przypisania, wyrażenia i wyświetlanie
    • Instrukcje przypisania
      • Formy instrukcji przypisania
      • Podstawowe przypisanie
      • Przypisanie sekwencji
      • Rozszerzona składnia rozpakowania sekwencji w Pythonie 3.x
      • Przypisanie z wieloma celami
      • Przypisania rozszerzone
      • Wyrażenia przypisania nazwanego
      • Reguły dotyczące nazw zmiennych
    • Instrukcje wyrażeń
      • Instrukcje wyrażeń i modyfikacje w miejscu
    • Polecenia print
      • Funkcja print
      • Przekierowanie strumienia wyjściowego
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 12. Testy if i reguły składni
    • Instrukcje if
      • Ogólny format
      • Proste przykłady
      • Instrukcja wielokrotnego wyboru
    • Instrukcje match
      • Podstawowe użycie match
      • Zaawansowane użycie match
    • Reguły składni Pythona raz jeszcze
      • Ograniczniki bloków - reguły tworzenia wcięć
      • Ograniczniki instrukcji - wiersze i znaki kontynuacji
      • Kilka przypadków specjalnych
    • Testy prawdziwości i testy logiczne
    • Wyrażenie trójargumentowe if/else
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 13. Pętle while i for
    • Pętle while
      • Ogólny format
      • Przykłady
    • Instrukcje break, continue, pass oraz else w pętli
      • Ogólny format pętli
      • Instrukcja pass
      • Instrukcja continue
      • Instrukcja break
      • Klauzula else pętli
    • Pętle for
      • Ogólny format
      • Przykłady
    • Techniki tworzenia pętli
      • Pętle z licznikami - range
      • Skanowanie sekwencji - while, range, 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
      • Generowanie wartości przesunięcia i elementów - enumerate
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 14. Iteracje i listy składane
    • Iteracje
      • Protokół iteracyjny
      • Wbudowane funkcje iter i next
      • Inne wbudowane typy iterowalne
    • Listy składane
      • Podstawy list składanych
      • Wykorzystywanie list składanych w plikach
      • Rozszerzona składnia list składanych
      • Listy składane - zawieszenie tematu
    • Narzędzia iteracyjne
    • Inne zagadnienia związane z iteracjami
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 15. Wprowadzenie do dokumentacji
    • Źródła dokumentacji Pythona
      • Komentarze ze znakami #
      • Funkcja dir
      • Notki dokumentacyjne - __doc__
      • PyDoc - funkcja help
      • PyDoc - raporty HTML
      • Nie tylko notki docstrings - pakiet Sphinx
      • Zbiór standardowej dokumentacji
      • Zasoby internetowe
    • Często spotykane problemy programistyczne
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
    • Ćwiczenia do części III

Część IV. Funkcje i generatory

  • 16. Podstawy funkcji
    • Dlaczego używamy funkcji?
    • Tworzenie funkcji
      • Podstawowe narzędzia funkcji
      • Zaawansowane narzędzia funkcji
      • Ogólne koncepcje związane z funkcjami
      • Instrukcje def
      • Instrukcje return
      • Instrukcja def uruchamiana jest w czasie wykonywania
      • Wyrażenie lambda tworzy funkcje anonimowe
    • Pierwszy przykład: definicje i wywoływanie
      • Definicja
      • Wywołanie
      • Polimorfizm w Pythonie
    • Drugi przykład: przecinające się sekwencje
      • Definicja
      • Wywołania
      • Raz jeszcze o polimorfizmie
      • Zmienne lokalne
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 17. Zasięgi
    • Podstawy zasięgów w Pythonie
      • Reguły dotyczące zasięgów
      • Rozwiązywanie nazw - reguła LEGB
      • Przykład zasięgu
      • Zasięg wbudowany
    • Instrukcja global
      • Projektowanie programów: minimalizowanie stosowania zmiennych globalnych
      • Projektowanie programów: minimalizacja modyfikacji dokonywanych pomiędzy plikami
      • Inne metody dostępu do zmiennych globalnych
    • Zasięgi a funkcje zagnieżdżone
      • Szczegóły dotyczące zasięgów zagnieżdżonych
      • Przykłady zasięgów zagnieżdżonych
      • Funkcje fabrykujące: domknięcia
    • Instrukcja nonlocal
      • Podstawy instrukcji nonlocal
      • Instrukcja nonlocal w akcji
      • Przypadki graniczne
    • Opcje zachowania stanu
      • Zmienne nonlocal - modyfikowalne, na wywołanie, LEGB
      • Zmienne globalne - modyfikowalne, ale współdzielone
      • Atrybuty funkcji - modyfikowalne, na wywołanie, jawne
      • Klasy - modyfikowalne, na wywołanie, programowanie zorientowane obiektowo
      • A zwycięzcą jest.
    • Zakresy i domyślne wartości argumentów
      • Pętle wymagają wartości domyślnych, nie zasięgów
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 18. Argumenty
    • Podstawy przekazywania argumentów
      • Argumenty a współdzielone referencje
      • Unikanie modyfikacji argumentów mutowalnych
      • Symulowanie parametrów wyjścia i wielu wyników działania
    • Specjalne tryby dopasowywania argumentów
      • Podstawy dopasowywania argumentów
      • Składnia dopasowania argumentów
      • Dopasowywanie argumentów - szczegóły
      • Przykłady ze słowami kluczowymi i wartościami domyślnymi
      • Przykłady dowolnych argumentów
      • Argumenty tylko ze słowami kluczowymi
      • Argumenty tylko pozycyjne
    • Kolejność argumentów - szczegóły techniczne
      • Kolejność w definicji funkcji
      • Kolejność wywoływania
    • Przykład z funkcją obliczającą minimum
      • Pełne rozwiązanie
      • Bonus
      • Puenta
    • Przykład z uogólnionymi funkcjami działającymi na zbiorach
      • Testowanie kodu
    • Przykład z utworzeniem własnej funkcji print
      • Wykorzystywanie argumentów ze słowami kluczowymi
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 19. Zaawansowane zagadnienia dotyczące funkcji
    • Koncepcje projektowania funkcji
    • Funkcje rekurencyjne
      • Sumowanie z użyciem rekurencji
      • Implementacje alternatywne
      • Pętle a rekurencja
      • Obsługa dowolnych struktur
    • Obiekty funkcji - atrybuty, adnotacje i tym podobne
      • Obiekty "pierwszej klasy"
      • Introspekcja funkcji
      • Atrybuty funkcji
      • Adnotacje funkcji i dekoratory
    • Funkcje anonimowe - lambda
      • Podstawy wyrażeń lambda
      • Po co używamy wyrażeń lambda?
      • Jak (nie) zaciemniać kodu napisanego w Pythonie?
      • Zasięgi: wyrażenia lambda również można zagnieżdżać
    • Narzędzia programowania funkcyjnego
      • Odwzorowywanie funkcji na obiekty iterowalne - map
      • Wybieranie elementów obiektów iterowalnych - funkcja filter
      • Łączenie elementów obiektów iterowalnych - funkcja reduce
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 20. Listy składane i generatory
    • Listy składane - akt końcowy
      • Powtórka z list składanych
      • Przykład: listy składane i macierze
    • Funkcje i wyrażenia generatorów
      • Funkcje generatorów - yield kontra return
      • Wyrażenia generatorów - obiekty iterowalne spotykają złożenia
      • Różne ciekawostki dotyczące generatorów
    • Przykład: generowanie mieszanych sekwencji
      • Sekwencje mieszające
      • Permutacje: wszystkie możliwe kombinacje
    • Przykład: emulowanie funkcji zip i map
      • Tworzymy własną implementację funkcji map
      • Własna wersja funkcji zip i map z Pythona 2.X
    • Funkcje asynchroniczne - krótka historia
      • Podstawy funkcji asynchronicznych
      • Podsumowanie funkcji asynchronicznych
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 21. Wprowadzenie do pomiarów wydajności
    • Pomiary wydajności domowymi sposobami
      • Moduł pomiaru czasu - ujęcie pierwsze
      • Moduł pomiaru czasu - ujęcie drugie
      • Skrypt mierzący wydajność
      • Wyniki pomiarów czasu iteracji
      • Inne rozwiązania dla modułu do pomiaru czasu
    • Mierzenie czasu iteracji z wykorzystaniem modułu timeit
      • Podstawowe reguły korzystania z modułu timeit
      • Automatyczne testy wydajnościowe z użyciem modułu timeit
    • Pułapki związane z funkcjami
      • Lokalne nazwy są wykrywane w sposób statyczny
      • Wartości domyślne i obiekty mutowalne
      • Funkcje, które nie zwracają wyników
      • Różne problemy związane z funkcjami
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
    • Sprawdź swoją wiedzę - ćwiczenia do części IV

Część V. Moduły i pakiety

  • 22. Moduły - wprowadzenie
    • Moduły - podstawy
    • Dlaczego używamy modułów?
    • Architektura programu w Pythonie
      • Struktura programu
      • Importowanie i atrybuty
      • Moduły biblioteki standardowej
    • Jak działa importowanie?
      • 1. Odszukanie modułu
      • 2. Kompilowanie (o ile jest to potrzebne)
      • 3. Wykonanie
    • Ścieżka wyszukiwania modułów
      • Elementy ścieżki wyszukiwania
      • Konfigurowanie ścieżki wyszukiwania
      • Lista sys.path
      • Wybór pliku modułu
      • Nietypowe ścieżki - pliki samodzielne i pakiety
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 23. Podstawy tworzenia modułów
    • Tworzenie modułów
      • Nazwy modułów
      • Inne rodzaje modułów
    • Używanie modułów
      • Instrukcja import
      • Instrukcja from
      • Instrukcja from *
      • Operacja importowania jest przeprowadzana tylko raz
      • Instrukcje import są przypisaniami
      • Równoważność instrukcji import oraz from
      • Potencjalne pułapki związane z użyciem instrukcji from
    • Przestrzenie nazw modułów
      • Pliki generują przestrzenie nazw
      • Słowniki przestrzeni nazw: __dict__
      • Kwalifikowanie nazw atrybutów
      • Importowanie a zasięgi
      • Zagnieżdżanie przestrzeni nazw
    • Przeładowywanie modułów
      • Podstawy przeładowywania modułów
      • Przykład przeładowywania z użyciem reload
      • Różne aspekty przeładowywania
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 24. Pakiety modułów
    • Stosowanie pakietów
      • Podstawy importowania pakietów
      • Pakiety a ustawienia ścieżki wyszukiwania
    • Tworzenie pakietów
      • Podstawowa struktura pakietów
      • Pliki __init__.py
      • Pliki __main__.py
    • Do czego służą pakiety?
      • Historia dwóch systemów
      • Role pliku inicjalizacji pakietu
    • Względne importowanie pakietów
      • Względne i bezwzględne importowanie pakietów
      • Importowanie względne - za i przeciw
      • Importy względne w działaniu
    • Pakiety przestrzeni nazw
      • Modele importowania w Pythonie
      • Uzasadnienie dla pakietów przestrzeni nazw
      • Algorytm wyszukiwania modułu
      • Pakiety przestrzeni nazw w akcji
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 25. Zaawansowane zagadnienia związane z modułami
    • Koncepcje związane z projektowaniem modułów
    • Ukrywanie danych w modułach
      • Minimalizacja niebezpieczeństw użycia from * - _X oraz __all__
      • Zarządzanie dostępem do atrybutów - __getattr__ i __dir__
    • Włączanie opcji z przyszłych wersji Pythona: __future__
    • Mieszane tryby użycia - __name__ i __main__
      • Przykład: testy jednostkowe z wykorzystaniem atrybutu __name__
      • Rozszerzenie as dla instrukcji import oraz from
    • Introspekcja modułów
      • Przykład: wyświetlanie modułów za pomocą __dict__
    • Importowanie modułów z użyciem nazwy w postaci ciągu znaków
      • Uruchamianie ciągów znaków zawierających kod
      • Bezpośrednie wywołania: dwie opcje
      • 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 V

Część VI. Klasy i programowanie zorientowane obiektowo

  • 26. Programowanie zorientowane obiektowo - wprowadzenie
    • Po co używa się klas?
    • Programowanie zorientowane obiektowo z dystansu
      • Wyszukiwanie atrybutów dziedziczonych
      • Klasy a instancje
      • Wywołania metod klasy
      • Tworzenie drzew klas
      • Przeciążanie operatorów
      • Programowanie zorientowane obiektowo oparte jest na ponownym wykorzystaniu kodu
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 27. Podstawy tworzenia klas
    • Klasy generują wiele obiektów instancji
      • Obiekty klas udostępniają zachowania domyślne
      • Obiekty instancji są rzeczywistymi elementami
      • Pierwszy przykład
    • Klasy dostosowujemy do własnych potrzeb przez dziedziczenie
      • Drugi przykład
      • Klasy są atrybutami w modułach
    • Klasy mogą przechwytywać operatory Pythona
      • Trzeci przykład
    • Najprostsza klasa Pythona na świecie
      • Klasy od kuchni
      • Jeszcze kilka słów o rekordach: klasy kontra słowniki
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 28. Bardziej realistyczny przykład
    • Krok 1. - tworzenie instancji
      • Tworzenie konstruktorów
      • Testowanie w miarę pracy
      • Wykorzystywanie kodu na dwa sposoby
    • Krok 2. - dodawanie metod
      • Tworzenie kodu metod
    • Krok 3. - przeciążanie operatorów
      • Udostępnienie sposobów wyświetlania
    • Krok 4. - dostosowywanie zachowania za pomocą klas podrzędnych
      • Tworzenie klas podrzędnych
      • Rozszerzanie metod - niepoprawny sposób
      • Rozszerzanie metod - poprawny sposób
      • Polimorfizm w akcji
      • Dziedziczenie, dostosowanie do własnych potrzeb i rozszerzenie
      • Programowanie zorientowane obiektowo - idea
    • Krok 5. - dostosowanie do własnych potrzeb także konstruktorów
      • Programowanie zorientowane obiektowo jest prostsze, niż się wydaje
      • Inne sposoby łączenia klas
    • Krok 6. - wykorzystywanie narzędzi do introspekcji
      • Specjalne atrybuty klas
      • Uniwersalne narzędzie do wyświetlania
      • Atrybuty instancji a atrybuty klas
      • Nazwy w klasach narzędziowych
      • Ostateczna postać naszych klas
    • Krok 7. i ostatni - przechowanie obiektów w bazie danych
      • Obiekty pickle i shelve
      • Przechowywanie obiektów w bazie danych za pomocą shelve
      • Interaktywna eksploracja obiektów shelve
      • Uaktualnianie obiektów w pliku shelve
    • Przyszłe kierunki rozwoju
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 29. Szczegóły kodowania klas
    • Instrukcja class
      • Ogólna forma
      • Przykład: atrybuty klasy
    • Metody
      • Przykład metody
      • Inne możliwości wywoływania metod
    • Dziedziczenie
      • Tworzenie drzewa atrybutów
      • Szczegóły dziedziczenia
      • Specjalizacja odziedziczonych metod
      • Techniki interfejsów klas
      • Abstrakcyjne klasy nadrzędne
    • 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
  • 30. Przeciążanie operatorów
    • Podstawy
      • Konstruktory i wyrażenia - __init__ i __sub__
      • Często spotykane metody przeciążania operatorów
    • Indeksowanie i wycinanie - __getitem__ i __setitem__
      • Wycinki
      • Przechwytywanie przypisań elementu
      • Metoda __index__ nie służy do indeksowania!
    • Iteracja po indeksie - __getitem__
    • Obiekty iteratorów - __iter__ i __next__
      • Iteratory zdefiniowane przez użytkownika
      • Wiele iteracji po jednym obiekcie
      • Alternatywa: metoda__iter__ i instrukcja yield
    • Test przynależności - __contains__, __iter__ i __getitem__
    • Dostęp do atrybutów - __getattr__ i __setattr__
      • Odwołania do atrybutów
      • Przypisywanie wartości i usuwanie atrybutów
      • Inne narzędzia do zarządzania atrybutami
      • Emulowanie prywatności w atrybutach instancji
    • Reprezentacje łańcuchów - __repr__ i __str__
      • Po co nam dwie metody wyświetlania?
      • Uwagi dotyczące wyświetlania
    • Dodawanie prawostronne i miejscowa modyfikacja: metody __radd__ i __iadd__
      • Dodawanie prawostronne
      • Dodawanie w miejscu
    • Wywołania - __call__
      • Interfejsy funkcji i kod oparty na wywołaniach zwrotnych
    • Porównania - __lt__, __gt__ i inne
    • Testy logiczne - __bool__ i __len__
    • Destrukcja obiektu - __del__
      • Uwagi dotyczące stosowania destruktorów
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 31. Projektowanie z użyciem klas
    • Python a programowanie zorientowane obiektowo
      • Polimorfizm to interfejsy, a nie sygnatury wywołań
    • Programowanie zorientowane obiektowo i dziedziczenie - związek "jest"
    • Programowanie zorientowane obiektowo i kompozycja - związki typu "ma"
      • Raz jeszcze procesor strumienia danych
    • Programowanie zorientowane obiektowo a delegacja - obiekty "opakowujące"
    • Pseudoprywatne atrybuty klas
      • Przegląd zniekształcania nazw zmiennych
      • Po co używa się atrybutów pseudoprywatnych?
    • Metody są obiektami - z wiązaniem i bez wiązania
      • Metody związane w akcji
    • Klasy są obiektami - uniwersalne fabryki obiektów
      • Do czego służą fabryki?
    • Dziedziczenie wielokrotne i MRO
      • Jak działa dziedziczenie wielokrotne?
      • Jak działa MRO?
      • Rozwiązywanie konfliktów atrybutów
      • Przykład: listowanie atrybutów klas mieszanych
      • Przykład: wyświetlanie atrybutów ze źródłem dziedziczenia
    • Inne zagadnienia związane z projektowaniem
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 32. Zaawansowane zagadnienia związane z klasami
    • Rozszerzanie typów wbudowanych
      • Rozszerzanie typów za pomocą osadzania
      • Rozszerzanie typów za pomocą klas podrzędnych
    • Model obiektowy Pythona
      • Klasy są typami, a typy są klasami
      • Niektóre instancje są równiejsze od innych
      • Rozgałęzienie dziedziczenia
      • Różnica między metaklasą a klasą
      • I jeden object rządzi wszystkim
    • Zaawansowane narzędzia do obsługi atrybutów
      • Sloty: deklaracje atrybutów
      • Właściwości klas: dostęp do atrybutów
      • Implementacje atrybutów: __getattribute__ i deskryptory
    • Metody statyczne oraz metody klasy
      • Do czego potrzebujemy metod specjalnych?
      • Metody statyczne
      • Alternatywy dla metod statycznych
      • Używanie metod statycznych i metod klas
      • Zliczanie instancji z użyciem metod statycznych
      • Zliczanie instancji z metodami klas
    • Dekoratory i metaklasy
      • Podstawowe informacje o dekoratorach funkcji
      • Pierwsze spojrzenie na funkcję dekoratora zdefiniowaną przez użytkownika
      • Pierwsze spojrzenie na dekoratory klas i metaklasy
      • Dalsza lektura
    • Funkcja super
      • Podstawy funkcji super
      • Szczegóły dotyczące funkcji super
      • Posumowanie funkcji super
    • Pułapki związane z klasami
      • Modyfikacja atrybutów klas może mieć efekty uboczne
      • Modyfikowanie mutowalnych atrybutów klas również może mieć efekty uboczne
      • Dziedziczenie wielokrotne - kolejność ma znaczenie
      • Zakresy w metodach i klasach
      • Różne pułapki związane z klasami
      • Przesadne opakowywanie
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
    • Sprawdź swoją wiedzę - ćwiczenia do części VI

Część VII. Wyjątki

  • 33. Podstawy wyjątków
    • Po co używa się wyjątków?
      • Role wyjątków
    • Wyjątki w skrócie
      • Domyślny program obsługi wyjątków
      • Przechwytywanie wyjątków
      • Zgłaszanie wyjątków
      • Wyjątki zdefiniowane przez użytkownika
      • Działania końcowe
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 34. Szczegółowe informacje dotyczące wyjątków
    • Instrukcja try
      • Klauzule instrukcji try
      • Klauzule except i else
      • Klauzula finally
      • Połączone klauzule instrukcji try
    • Instrukcja raise
      • Zgłaszanie wyjątków
      • Klauzula except jako punkt zaczepienia
      • Zakresy widoczności zmiennych i except as
      • Przekazywanie wyjątków za pomocą raise
      • Łańcuchy wyjątków - raise from
    • Instrukcja assert
      • Przykład: wychwytywanie ograniczeń (ale nie błędów!)
    • Instrukcja with i menedżery kontekstu
      • Podstawowe zastosowanie with
      • Protokół zarządzania kontekstem
      • Kilka menedżerów kontekstu
      • Obsługa zakończenia
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 35. Obiekty wyjątków
    • Klasy wyjątków
      • Tworzenie klas wyjątków
      • Do czego służą hierarchie wyjątków?
    • Wbudowane klasy wyjątków
      • Kategorie wbudowanych wyjątków
      • Domyślne wyświetlanie oraz stan
    • Własne sposoby wyświetlania
    • Własne dane oraz zachowania
      • Udostępnianie szczegółów wyjątku
      • Udostępnianie metod wyjątków
    • Grupy wyjątków - kolejna gwiazda!
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 36. Projektowanie z wykorzystaniem wyjątków
    • Zagnieżdżanie programów obsługi wyjątków
      • Przykład: zagnieżdżanie przebiegu sterowania
      • Przykład: zagnieżdżanie składniowe
    • 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
      • Co powinniśmy opakować w try?
      • Jak nie przechwytywać zbyt wiele - unikanie pustych except i wyjątków
      • Jak nie przechwytywać zbyt mało - korzystanie z kategorii opartych na klasach
    • Podsumowanie podstaw języka Python
      • Zbiór narzędzi Pythona
      • Narzędzia programistyczne przeznaczone do większych projektów
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
    • Sprawdź swoją wiedzę - ćwiczenia do części VII

Część VIII. Zagadnienia zaawansowane

  • 37. Łańcuchy znaków Unicode oraz łańcuchy bajtowe
    • Podstawy Unicode
      • Kodowanie znaków
      • Kodowanie znaków
    • Wprowadzenie do narzędzi łańcuchów znaków w Pythonie
      • Obiekt str
      • Obiekt bytes
      • Obiekt bytearray
      • Pliki binarne i tekstowe
    • Wykorzystanie ciągów znaków
      • Literały tekstowe i podstawowe właściwości
      • Konwersje typów ciągów
      • Kodowanie łańcuchów znaków Unicode w Pythonie
      • Deklaracje typu kodowania znaków pliku źródłowego
    • Wykorzystywanie łańcuchów bajtowych
      • Wywołania metod
      • Operacje na sekwencjach
      • Formatowanie
      • Inne sposoby tworzenia obiektów bytes
      • Mieszanie typów łańcuchów znaków
      • Obiekt bytearray
    • Wykorzystywanie plików tekstowych i binarnych
      • Podstawy plików tekstowych
      • Tryby tekstowy i binarny
      • Pliki tekstowe Unicode
    • Unicode, obiekt bytes i inne narzędzia łańcuchów znaków
      • Moduł dopasowywania wzorców re
      • Moduł danych binarnych struct
      • Moduł serializacji obiektów pickle i json
      • Nazwy plików w funkcji open i inne narzędzia dla nazw plików
    • Zmierz Unicode
      • Obsługa BOM w Pythonie
      • Normalizacja Unicode - dokąd zmierza ten standard?
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 38. Zarządzane atrybuty
  • 39. Dekoratory
  • 40. Metaklasy i dziedziczenie
    • Tworzyć metaklasy czy tego nie robić?
      • Wady funkcji pomocniczych
      • Metaklasy a dekoratory klas - runda 1.
    • Model metaklasy
      • Klasy są instancjami obiektu type
      • Metaklasy są klasami podrzędnymi klasy type
      • Instrukcje class wywołują typ
      • Instrukcje class mogą wybierać typ
      • Protokół metod metaklas
    • Tworzenie metaklas
      • Prosta metaklasa
      • Dostosowywanie tworzenia do własnych potrzeb oraz inicjalizacja
      • Pozostałe sposoby tworzenia metaklas
      • Zarządzanie klasami za pomocą metaklas i dekoratorów
    • Dziedziczenie - finał
      • Metaklasy a klasy nadrzędne
      • Dziedziczenie metaklas
      • Algorytm dziedziczenia Pythona - prosta wersja
      • Algorytm dziedziczenia w Pythonie - trudniejsza wersja
      • Podsumowanie dziedziczenia
    • Metody metaklas
      • Metody metaklasy a metody klasy
      • Przeciążanie operatorów w metodach metaklasy
      • Metody metaklas a metody instancji
    • Podsumowanie rozdziału
    • Sprawdź swoją wiedzę - quiz
    • Sprawdź swoją wiedzę - odpowiedzi
  • 41. Wszystko, co najlepsze
    • Fala zmian w Pythonie
    • Piaskownica Pythona
    • Zalety Pythona
    • Końcowe wnioski
    • Dokąd dalej?
    • Na bis: wydrukuj swój certyfikat!

Dodatki

  • A. Wskazówki dotyczące użytkowania platformy
    • Korzystanie z Pythona w systemie Windows
    • Korzystanie z Pythona w systemie macOS
    • Korzystanie z Pythona w systemie Linux
    • Korzystanie z Pythona w systemie Android
      • Świat u stóp Androida
    • Korzystanie z Pythona w systemie iOS
    • Samodzielne programy i pliki wykonywalne
    • I tak dalej
  • B. Rozwiązania ćwiczeń podsumowujących poszczególne części książki
    • Część I. Wprowadzenie
    • Część II. Typy i operacje
    • Część III. Instrukcja i składnia
    • Część IV. Funkcje i generatory
    • Część V. Moduły i pakiety
    • Część VI. Klasy i programowanie zorientowane obiektowo
    • Część VII. Wyjątki

Skorowidz

  • O autorze
  • Kolofon

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2025 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.