Details zum E-Book

Python. Zwięzłe kompendium dla programisty

Python. Zwięzłe kompendium dla programisty

David Beazley

E-book

Przez ostatnie trzydzieści lat Python intensywnie się rozwijał. Stał się dojrzałym językiem programowania, nadającym się do tworzenia zarówno niewielkich, wyspecjalizowanych narzędzi, jak i złożonych systemów. Zakres jego możliwości poszerzają liczne biblioteki i narzędzia. Ta wszechstronność i bogactwo stanowią jednak duże wyzwanie dla programistów, którzy chcieliby nie tyle poznać poszczególne funkcje tego języka, ile dogłębnie go zrozumieć i nauczyć się "pythonicznego" sposobu myślenia.

Ta książka jest zwięzłym, skupionym na praktyce przewodnikiem po Pythonie w wersji 3.6 i nowszych. Dzięki niej skoncentrujesz się na rdzeniu języka i podstawowych zagadnieniach, które musisz doskonale opanować, jeśli chcesz pisać w nim dobry kod. Dowiesz się zatem, jak działa Python i jakich zasad należy przestrzegać podczas tworzenia programów, które później będą łatwe do przetestowania, debugowania i utrzymania. Dobrze zrozumiesz kluczowe kwestie, takie jak abstrakcja danych, kontrola przepływu programu, struktura programu, funkcje, obiekty i moduły. Poszczególne treści zostały zilustrowane przejrzystymi fragmentami kodu, pozwalającymi nie tylko łatwiej przyswoić opisane zagadnienia, ale i poczuć niezwykły urok Pythona - tę magię, która sprawia, że programowanie w tym języku daje mnóstwo przyjemności i satysfakcji!

W książce:

  • czym jest rdzeń Pythona
  • praca z danymi i ich analiza
  • zasady tworzenia przejrzystego i niezawodnego kodu
  • funkcje i idiomy w programowaniu funkcjonalnym
  • generatory, klasy, moduły, pakiety
  • prawidłowa obsługa I/O i korzyści ze stosowania słowników

Python? Zacznij od tego, co w nim najważniejsze!

Przedmowa

Rozdział 1. Podstawy Pythona

  • 1.1. Uruchamianie Pythona
  • 1.2. Programy Pythona
  • 1.3. Prymitywy, zmienne i wyrażenia
  • 1.4. Operatory arytmetyczne
  • 1.5. Warunki i sterowanie przepływem programu
  • 1.6. Ciągi tekstowe
  • 1.7. Operacje na plikach
  • 1.8. Listy
  • 1.9. Krotki
  • 1.10. Zbiory
  • 1.11. Słowniki
  • 1.12. Iteracja i pętle
  • 1.13. Funkcje
  • 1.14. Wyjątki
  • 1.15. Zakończenie programu
  • 1.16. Obiekty i klasy
  • 1.17. Moduły
  • 1.18. Pisanie skryptów
  • 1.19. Pakiety
  • 1.20. Strukturyzacja aplikacji
  • 1.21. Zarządzanie pakietami stron trzecich
  • 1.22. Python pasuje do Twojego mózgu

Rozdział 2. Operatory, wyrażenia i manipulacja danymi

  • 2.1. Literały
  • 2.2. Wyrażenia i lokalizacje
  • 2.3. Standardowe operatory
  • 2.4. Modyfikacje w miejscu
  • 2.5. Porównywanie obiektów
  • 2.6. Operatory porównania porządkowego
  • 2.7. Wyrażenia logiczne i wartości prawdziwe
  • 2.8. Wyrażenia warunkowe
  • 2.9. Operacje obejmujące elementy iterowalne
  • 2.10. Operacje na sekwencjach
  • 2.11. Operacje na mutowalnych obiektach sekwencyjnych
  • 2.12. Operacje na zbiorach
  • 2.13. Operacje na mapowaniach
  • 2.14. Lista, zbiór i słownik
  • 2.15. Wyrażenia generujące
  • 2.16. Operator atrybutu (.)
  • 2.17. Operator wywołania funkcji ()
  • 2.18. Kolejność liczenia
  • 2.19. Podsumowanie: sekretne życie danych

Rozdział 3. Struktura i kontrola przepływu programu

  • 3.1. Struktura i wykonanie programu
  • 3.2. Wykonanie warunkowe
  • 3.3. Pętle i iteracje
  • 3.4. Wyjątki
    • 3.4.1. Hierarchia wyjątków
    • 3.4.2. Wyjątki i kontrola przepływu
    • 3.4.3. Definiowanie nowych wyjątków
    • 3.4.4. Powiązane wyjątki
    • 3.4.5. Śledzenie wyjątków
    • 3.4.6. Wskazówka dotycząca obsługi wyjątków
  • 3.5. Menedżery kontekstu i instrukcja with
  • 3.6. Asercje i __debug__
  • 3.7. Podsumowanie

Rozdział 4. Obiekty, typy i protokoły

  • 4.1. Podstawowe pojęcia
  • 4.2. Tożsamość i typ obiektu
  • 4.3. Zliczanie referencji i odśmiecanie pamięci
  • 4.4. Referencje i kopie
  • 4.5. Reprezentacja obiektu i wyświetlanie
  • 4.6. Obiekty pierwszoklasowe
  • 4.7. Używanie wartości None dla opcjonalnych lub brakujących danych
  • 4.8. Protokoły obiektu i abstrakcja danych
  • 4.9. Protokół obiektu
  • 4.10. Protokół liczbowy
  • 4.11. Protokół porównania
  • 4.12. Protokoły konwersji
  • 4.13. Protokół kontenera
  • 4.14. Protokół iteracji
  • 4.15. Protokół atrybutów
  • 4.16. Protokół funkcji
  • 4.17. Protokół menedżera kontekstu
  • 4.18. Podsumowanie: pythoniczność

Rozdział 5. Funkcje

  • 5.1. Definicje funkcji
  • 5.2. Argumenty domyślne
  • 5.3. Argumenty wariadyczne (zmienna liczba argumentów)
  • 5.4. Argumenty słów kluczowych
  • 5.5. Wariadyczne argumenty słów kluczowych
  • 5.6. Funkcje akceptujące wszystkie dane wejściowe
  • 5.7. Argumenty tylko pozycyjne
  • 5.8. Nazwy, wpisy dokumentacyjne i wskazówki dotyczące typów
  • 5.9. Zastosowanie funkcji i przekazywanie parametrów
  • 5.10. Zwracane wartości
  • 5.11. Obsługa błędów
  • 5.12. Zasady określania zakresu
  • 5.13. Rekurencja
  • 5.14. Wyrażenie lambda
  • 5.15. Funkcje wyższego rzędu
  • 5.16. Przekazywanie argumentów w funkcjach zwrotnych
  • 5.17. Zwracanie wyników z wywołań zwrotnych
  • 5.18. Dekoratory
  • 5.19. Funkcje map, filter i reduce
  • 5.20. Przegląd funkcji, atrybutów i sygnatur
  • 5.21. Inspekcja środowiska
  • 5.22. Dynamiczne wykonywanie i tworzenie kodu
  • 5.23. Funkcje asynchroniczne i await
  • 5.24. Podsumowanie: przemyślenia na temat funkcji i kompozycji

Rozdział 6. Generatory

  • 6.1. Generatory i yield
  • 6.2. Generatory z możliwością ponownego uruchomienia
  • 6.3. Delegowanie generatora
  • 6.4. Używanie generatorów w praktyce
  • 6.5. Ulepszone generatory i wyrażenia yield
  • 6.6. Zastosowania ulepszonych generatorów
  • 6.7. Generatory i obsługa await
  • 6.8. Podsumowanie: krótka historia generatorów i patrzenie w przyszłość

Rozdział 7. Klasy i programowanie obiektowe

  • 7.1. Obiekty
  • 7.2. Wyrażenie class
  • 7.3. Instancje
  • 7.4. Dostęp do atrybutów
  • 7.5. Zasady ustalania zakresu
  • 7.6. Przeciążanie operatora i protokoły
  • 7.7. Dziedziczenie
  • 7.8. Unikanie dziedziczenia poprzez kompozycję
  • 7.9. Unikanie dziedziczenia poprzez funkcje
  • 7.10. Wiązanie dynamiczne i technika kaczego typowania
  • 7.11. Niebezpieczeństwo dziedziczenia po typach wbudowanych
  • 7.12. Zmienne i metody klasy
  • 7.13. Metody statyczne
  • 7.14. Słowo na temat wzorców projektowych
  • 7.15. Enkapsulacja danych i atrybuty prywatne
  • 7.16. Wskazówka typu
  • 7.17. Właściwości
  • 7.18. Typy, interfejsy i klasy abstrakcyjne
  • 7.19. Wielokrotne dziedziczenie, interfejsy i domieszki
  • 7.20. Dyspozycja oparta na typie
  • 7.21. Dekoratory klas
  • 7.22. Nadzorowane dziedziczenie
  • 7.23. Cykl życia obiektu i zarządzanie pamięcią
  • 7.24. Słabe referencje
  • 7.25. Wewnętrzna reprezentacja obiektów i wiązanie atrybutu
  • 7.26. Proxy, wrapper i delegacje
  • 7.27. Zmniejszenie wykorzystania pamięci za pomocą __slots__
  • 7.28. Deskryptory
  • 7.29. Proces definicji klasy
  • 7.30. Dynamiczne tworzenie klas
  • 7.31. Metaklasy
  • 7.32. Obiekty wbudowane dla instancji i klas
  • 7.33. Podsumowanie: zachowaj prostotę

Rozdział 8. Moduły i pakiety

  • 8.1. Moduły i wyrażenie import
  • 8.2. Buforowanie modułów
  • 8.3. Importowanie wybranych nazw z modułu
  • 8.4. Importy cykliczne
  • 8.5. Ponowne ładowanie i zwolnienie modułu
  • 8.6. Kompilacja modułów
  • 8.7. Ścieżka wyszukiwania modułów
  • 8.8. Wykonanie jako program główny
  • 8.9. Pakiety
  • 8.10. Import wewnątrz pakietu
  • 8.11. Uruchamianie podmodułu pakietu jako skryptu
  • 8.12. Kontrolowanie przestrzeni nazw pakietu
  • 8.13. Kontrolowanie eksportu pakietów
  • 8.14. Dane pakietu
  • 8.15. Obiekty modułu
  • 8.16. Wdrażanie pakietów Pythona
  • 8.17. Przedostatnie słowo: zacznij od pakietu
  • 8.18. Podsumowanie: zachowaj prostotę

Rozdział 9. Obsługa operacji wejścia-wyjścia

  • 9.1. Reprezentacja danych
  • 9.2. Kodowanie i dekodowanie tekstu
  • 9.3. Formatowanie tekstu i bajtów
  • 9.4. Czytanie opcji wiersza poleceń
  • 9.5. Zmienne środowiskowe
  • 9.6. Pliki i obiekty plików
    • 9.6.1. Nazwy plików
    • 9.6.2. Tryby plików
    • 9.6.3. Buforowanie operacji wejścia-wyjścia
    • 9.6.4. Kodowanie w trybie tekstowym
    • 9.6.5. Obsługa wiersza w trybie tekstowym
  • 9.7. Warstwy abstrakcyjne wejścia-wyjścia
    • 9.7.1. Metody plików
  • 9.8. Standardowe wejście, wyjście i błąd
  • 9.9. Katalogi
  • 9.10. Funkcja print()
  • 9.11. Generowanie wyjścia
  • 9.12. Pobieranie danych wejściowych
  • 9.13. Serializacja obiektów
  • 9.14. Operacje blokujące i współbieżność
    • 9.14.1. Nieblokujące operacje wejścia-wyjścia
    • 9.14.2. Odpytywanie operacji wejścia-wyjścia
    • 9.14.3. Wątki
    • 9.14.4. Równoczesne wykonywanie z asyncio
  • 9.15. Standardowe moduły biblioteczne
    • 9.15.1. Moduł asyncio
    • 9.15.2. Moduł binascii
    • 9.15.3. Moduł cgi
    • 9.15.4. Moduł configparser
    • 9.15.5. Moduł csv
    • 9.15.6. Moduł errno
    • 9.15.7. Moduł fcntl
    • 9.15.8. Moduł hashlib
    • 9.15.9. Pakiet http
    • 9.15.10. Moduł io
    • 9.15.11. Moduł json
    • 9.15.12. Moduł logging
    • 9.15.13. Moduł os
    • 9.15.14. Moduł os.path
    • 9.15.15. Moduł pathlib
    • 9.15.16. Moduł re
    • 9.15.17. Moduł shutil
    • 9.15.18. Moduł select
    • 9.15.19. Moduł smtplib
    • 9.15.20. Moduł socket
    • 9.15.21. Moduł struct
    • 9.15.22. Moduł subprocess
    • 9.15.23. Moduł tempfile
    • 9.15.24. Moduł textwrap
    • 9.15.25. Moduł threading
    • 9.15.26. Moduł time
    • 9.15.27. Pakiet urllib
    • 9.15.28. Moduł unicodedata
    • 9.15.29. Pakiet xml
  • 9.16. Podsumowanie

Rozdział 10. Funkcje wbudowane i biblioteka standardowa

  • 10.1. Funkcje wbudowane
  • 10.2. Wyjątki wbudowane
    • 10.2.1. Klasy bazowe wyjątków
    • 10.2.2. Atrybuty wyjątków
    • 10.2.3. Predefiniowane klasy wyjątków
  • 10.3. Biblioteka standardowa
    • 10.3.1. Moduł collections
    • 10.3.2. Moduł datetime
    • 10.3.3. Moduł itertools
    • 10.3.4. Moduł inspect
    • 10.3.5. Moduł math
    • 10.3.6. Moduł os
    • 10.3.7. Moduł random
    • 10.3.8. Moduł re
    • 10.3.9. Moduł shutil
    • 10.3.10. Moduł statistics
    • 10.3.11. Moduł sys
    • 10.3.12. Moduł time
    • 10.3.13. Moduł turtle
    • 10.3.14. Moduł unittest
  • 10.4. Podsumowanie: korzystaj z wbudowanych elementów
  • Titel: Python. Zwięzłe kompendium dla programisty
  • Autor: David Beazley
  • Originaler Titel: Python Distilled (Developer's Library)
  • Übersetzung: Łukasz Wójcicki
  • ISBN: 978-83-283-9020-1, 9788328390201
  • Veröffentlichungsdatum: 2022-12-06
  • Format: E-book
  • Artikelkennung: pyzwko
  • Verleger: Helion