Python. Wprowadzenie - ebook
Python. Wprowadzenie - ebook
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!
Spis treści
- Przedmowa
- Ekosystem tej książki
- O niniejszym, piątym wydaniu książki
- Python 2.x i 3.x kiedyś
- Python 2.x i 3.x obecnie
- Omawiamy zarówno wersję 2.x, jak i 3.x
- Której wersji Pythona powinienem użyć?
- Wymagania wstępne dla użytkowników tej książki
- Struktura tej książki
- Czym nie jest ta książka
- Ta książka nie jest leksykonem ani przewodnikiem po konkretnych zastosowaniach Pythona
- To nie jest krótka historia dla ludzi, którzy się spieszą
- Ta książka jest tak liniowa, jak na to pozwala Python
- O przykładach zamieszczonych w książce
- Wersje Pythona
- Platformy
- Pobieranie kodów źródłowych dla tej książki
- Konwencje wykorzystywane w książce
- Podziękowania
- Trochę wspomnień
- Podziękowania dla Pythona
- Podziękowania osobiste
- Część I Wprowadzenie
- Rozdział 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ą wady języka Python?
- Kto dzisiaj używa Pythona?
- Co mogę zrobić za pomocą Pythona?
- Programowanie systemowe
- Graficzne interfejsy użytkownika (GUI)
- Skrypty internetowe
- Integracja komponentów
- Programowanie bazodanowe
- Szybkie prototypowanie
- Programowanie numeryczne i naukowe
- I dalej: gry, przetwarzanie obrazu, wyszukiwanie danych, robotyka, Excel
- Jak Python jest rozwijany i wspierany?
- Kompromisy związane z modelem open source
- Jakie są techniczne mocne strony Pythona?
- Jest zorientowany obiektowo i funkcyjny
- Jest darmowy
- 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ę
- Zawdzięcza swoją nazwę Monty Pythonowi
- Jak Python wygląda na tle innych języków?
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę quiz
- Sprawdź swoją wiedzę odpowiedzi
- Dlaczego ludzie używają Pythona?
- Rozdział 2. Jak Python wykonuje programy?
- Wprowadzenie do interpretera Pythona
- Wykonywanie programu
- Z punktu widzenia programisty
- Z punktu widzenia Pythona
- Kompilacja kodu bajtowego
- Maszyna wirtualna Pythona
- Wpływ na wydajność
- Wpływ na proces programowania
- Warianty modeli wykonywania
- Alternatywne implementacje Pythona
- CPython standard
- Jython Python dla języka Java
- IronPython Python dla .NET
- Stackless: Python dla programowania współbieżnego
- PyPy Python dla szybkości i wydajności
- Narzędzia do optymalizacji działania programu
- Cython: hybryda Pythona/C
- Shed Skin: translator języka Python na C ++
- Psyco oryginalny kompilator JIT
- Zamrożone pliki binarne
- Przyszłe możliwości?
- Alternatywne implementacje Pythona
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę quiz
- Sprawdź swoją wiedzę odpowiedzi
- 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
- Eksperymentowanie
- Testowanie
- Eksperymentowanie
- Uwagi praktyczne wykorzystywanie sesji interaktywnej
- Wpisywanie instrukcji wielowierszowych
- Systemowy wiersz poleceń i pliki źródłowe
- Pierwszy skrypt
- Wykonywanie plików z poziomu wiersza poleceń powłoki
- Sposoby użycia wiersza poleceń
- Uwagi praktyczne wykorzystywanie wierszy poleceń i plików
- Skrypty wykonywalne w stylu uniksowym #!
- Podstawy skryptów uniksowych
- Sztuczka z wyszukiwaniem programu przy użyciu polecenia env w systemie Unix
- Python 3.3 launcher #! w systemie Windows
- Klikanie ikon plików
- Podstawowe zagadnienia związane z klikaniem ikon plików
- Kliknięcie ikony w systemie Windows
- Sztuczka z funkcją input
- Inne ograniczenia programów uruchamianych kliknięciem ikony
- Importowanie i przeładowywanie modułów
- Podstawy importowania i przeładowywania modułów
- Więcej o modułach atrybuty
- Moduły i przestrzenie nazw
- Uwagi praktyczne instrukcje import i reload
- Wykorzystywanie funkcji exec do wykonywania plików modułów
- Interfejs użytkownika środowiska IDLE
- Szczegóły uruchamiania środowiska IDLE
- Podstawy środowiska IDLE
- Wybrane funkcje środowiska IDLE
- Zaawansowane narzędzia środowiska IDLE
- Uwagi praktyczne korzystanie ze środowiska IDLE
- Inne środowiska IDE
- Inne opcje wykonywania kodu
- Osadzanie wywołań
- Zamrożone binarne pliki wykonywalne
- Uruchamianie kodu z poziomu edytora tekstu
- Jeszcze inne możliwości uruchamiania
- Przyszłe możliwości?
- 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
- Hierarchia pojęć w Pythonie
- Dlaczego korzystamy z typó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
- Dopasowywanie wzorców
- 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
- Iteracja i optymalizacja
- Krotki
- Do czego służą krotki
- Pliki
- Pliki binarne
- Pliki tekstowe Unicode
- Inne narzędzia podobne do plików
- Inne typy podstawowe
- Jak zepsuć elastyczność kodu
- Klasy definiowane przez użytkownika
- I wszystko inne
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę quiz
- Sprawdź swoją wiedzę odpowiedzi
- Rozdział 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
- Porównania zwykłe i łączone
- Dzielenie klasyczne, bez reszty i prawdziwe
- Obsługa różnych wersji Pythona
- Dzielenie bez reszty a odcinanie
- Dlaczego odcinanie ma znaczenie?
- 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
- Typ Decimal (liczby dziesiętne)
- Typ Decimal zagadnienia podstawowe
- Globalne ustawianie precyzji liczb dziesiętnych
- Menedżer kontekstu dziesiętnego
- Typ Fraction (liczby ułamkowe)
- Typ Fraction zagadnienia podstawowe
- Dokładność numeryczna ułamków zwykłych i dziesiętnych
- Konwersje ułamków i typy mieszane
- Zbiory
- Podstawy zbiorów w Pythonie 2.6 i wersjach wcześniejszych
- Literały zbiorów w Pythonie 3.x i 2.7
- Ograniczenia na obiekty niemutowalne i zbiory zamrożone
- Zbiory składane w Pythonie 3.x i 2.7
- Dlaczego zbiory?
- Wartości Boolean
- Typ Decimal (liczby dziesiętne)
- Rozszerzenia numeryczne
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę quiz
- Sprawdź swoją wiedzę odpowiedzi
- Podstawy typów liczbowych Pythona
- Rozdział 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
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę quiz
- Sprawdź swoją wiedzę odpowiedzi
- Sprawa brakujących deklaracji typu
- Rozdział 7. Łańcuchy znaków
- Co znajdziesz w tym rozdziale
- Unicode krótka historia
- Ł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
- Rozszerzone wycinki trzeci limit i obiekty wycinków
- Narzędzia do konwersji łańcuchów znaków
- Konwersje kodu znaków
- Modyfikowanie łańcuchów znaków
- Metody łańcuchów znaków
- Składnia wywoływania metod
- Metody typów znakowych
- Przykłady metod łańcuchów znaków modyfikowanie
- Przykłady metod łańcuchów znaków analiza składniowa tekstu
- Inne często używane metody łańcuchów znaków
- Oryginalny moduł string (usunięty w wersji 3.0)
- Wyrażenia formatujące łańcuchy znaków
- Formatowanie łańcuchów tekstu z użyciem wyrażeń formatujących podstawy
- Składnia zaawansowanych wyrażeń formatujących
- Przykłady zaawansowanych wyrażeń formatujących
- Wyrażenia formatujące oparte na słowniku
- 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
- 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
- Co znajdziesz w tym rozdziale
- Rozdział 8. Listy oraz słowniki
- Listy
- Listy w akcji
- Podstawowe operacje na listach
- Iteracje po listach i składanie list
- Indeksowanie, wycinki i macierze
- Modyfikacja list w miejscu
- Przypisywanie do indeksu i wycinków
- Wywołania metod list
- Kilka słów o sortowaniu list
- Inne, często stosowane metody list
- Inne popularne operacje na listach
- Słowniki
- Słowniki w akcji
- Podstawowe operacje na słownikach
- Modyfikacja słowników w miejscu
- Inne metody słowników
- Przykład baza danych o filmach
- Przykład mapowanie wartości na klucze
- Uwagi na temat korzystania ze słowników
- Wykorzystywanie słowników do symulowania elastycznych list liczby całkowite jako klucze
- Wykorzystywanie słowników z rzadkimi strukturami danych krotki jako klucze
- Unikanie błędów z brakującymi kluczami
- Zagnieżdżanie słowników
- Inne sposoby tworzenia słowników
- Zmiany dotyczące słowników w Pythonie 3.x i 2.7
- Słowniki składane w wersjach 3.x i 2.7
- Widoki słowników w wersji 3.x (oraz wersji 2.7 przy użyciu nowych metod)
- Widoki słowników i zbiory
- Sortowanie kluczy słowników w wersji 3.x
- Porównywanie rozmiarów słowników nie działa w 3.x
- W wersji 3.x metoda has_key nie istnieje, niech żyje in!
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę quiz
- Sprawdź swoją wiedzę odpowiedzi
- Rozdział 9. Krotki, pliki i wszystko inne
- Krotki
- Krotki w akcji
- Właściwości składni krotek przecinki i nawiasy
- Konwersje, metody oraz niemutowalność
- Dlaczego istnieją listy i krotki
- Repetytorium: rekordy krotki nazwane
- Krotki w akcji
- 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
- Elastyczność obiektów
- Referencje a kopie
- Porównania, testy równości i prawda
- Porównywania i sortowania typów mieszanych w Pythonie 2.x i 3.x
- Porównywanie słowników w Pythonie 2.x i 3.x
- Prawda czy fałsz, czyli znaczenie True i False w Pythonie
- Obiekt None
- Typ bool
- 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 drugiej
- Krotki
- Część III Instrukcje i składnia
- Rozdział 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
- Nawiasy są opcjonalne
- Koniec wiersza jest końcem instrukcji
- Koniec wcięcia to koniec bloku
- Skąd bierze się składnia z użyciem wcięć
- Kilka przypadków specjalnych
- Przypadki specjalne dla reguły o końcu wiersza
- Przypadki specjalne dla reguły o wcięciach bloków
- 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
- Obsługa liczb zmiennoprzecinkowych
- Kod zagnieżdżony na trzy poziomy głębokości
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę quiz
- Sprawdź swoją wiedzę odpowiedzi
- Rozdział 11. Przypisania, wyrażenia i wyświetlanie
- Instrukcje przypisania
- Formy instrukcji przypisania
- Przypisanie sekwencji
- Zaawansowane wzorce przypisywania sekwencji
- Rozszerzona składnia rozpakowania sekwencji w Pythonie 3.x
- Rozszerzona składania rozpakowania w działaniu
- Przypadki brzegowe
- Wygodny gadżet
- Zastosowanie w pętli for
- Przypisanie z wieloma celami
- Przypisanie z wieloma celami a współdzielone referencje
- Przypisania rozszerzone
- Przypisania rozszerzone a współdzielone referencje
- Reguły dotyczące nazw zmiennych
- Konwencje dotyczące nazewnictwa
- Nazwy nie mają typu, ale obiekty tak
- Instrukcje wyrażeń
- Instrukcje wyrażeń i modyfikacje w miejscu
- Polecenia print
- Funkcja print z Pythona 3.x
- Format wywołania
- Funkcja print z wersji 3.x w działaniu
- Instrukcja print w Pythonie 2.x
- Formy instrukcji
- Instrukcja print Pythona 2.x w działaniu
- Przekierowanie strumienia wyjściowego
- Program Witaj, świecie!
- Ręczne przekierowanie strumienia wyjścia
- Automatyczne przekierowanie strumienia
- Wyświetlanie niezależne od wersji
- Konwerter 2to3
- Importowanie z __future__
- Neutralizacja różnic w wyświetlaniu za pomocą kodu
- Funkcja print z Pythona 3.x
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę quiz
- Sprawdź swoją wiedzę odpowiedzi
- Instrukcje przypisania
- Rozdział 12. Testy if i reguły składni
- Instrukcje if
- Ogólny format
- Proste przykłady
- Rozgałęzienia kodu
- Obsługa domyślnych wartości wyboru
- Obsługa bardziej złożonych operacji
- Reguły składni Pythona raz jeszcze
- Ograniczniki bloków reguły tworzenia wcięć
- Unikaj mieszania tabulatorów i spacji nowa opcja sprawdzania błędów w Pythonie 3.x
- Ograniczniki instrukcji wiersze i znaki kontynuacji
- Kilka przypadków specjalnych
- Ograniczniki bloków reguły tworzenia wcięć
- Testy prawdziwości i testy logiczne
- Wyrażenie trójargumentowe if/else
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę quiz
- Sprawdź swoją wiedzę odpowiedzi
- Instrukcje if
- Rozdział 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
- Więcej o części pętli else
- Pętle for
- Ogólny format
- Przykłady
- Podstawowe zastosowanie
- Inne typy danych
- Przypisanie krotek w pętli for
- Rozszerzone przypisanie sekwencji w pętlach for w Pythonie 3.x
- Zagnieżdżone 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
- Równoznaczność funkcji map w Pythonie 2.x
- Tworzenie słowników za pomocą funkcji zip
- Generowanie wartości przesunięcia i elementów enumerate
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę quiz
- Sprawdź swoją wiedzę odpowiedzi
- Pętle while
- Rozdział 14. Iteracje i listy składane
- Iteracje pierwsze spojrzenie
- Protokół iteracyjny iteratory plików
- Iterowanie ręczne iter i next
- Pełny protokół iteracji
- Iteracje ręczne
- Inne wbudowane typy iterowalne
- Listy składane wprowadzenie
- Podstawy list składanych
- Wykorzystywanie list składanych w plikach
- Rozszerzona składnia list składanych
- Klauzula filtrująca: if
- Zagnieżdżone pętle: klauzula for
- Inne konteksty iteracyjne
- Nowe obiekty iterowalne w Pythonie 3.x
- Wpływ na kod w wersji 2.x zalety i wady
- Obiekt iterowalny range
- Obiekty iterowalne map, zip i filter
- Iteratory wielokrotne kontra pojedyncze
- Obiekty iterowalne widoki słownika
- Inne zagadnienia związane z iteracjami
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę quiz
- Sprawdź swoją wiedzę odpowiedzi
- Iteracje pierwsze spojrzenie
- Rozdział 15. Wprowadzenie do dokumentacji
- Źródła dokumentacji Pythona
- Komentarze ze znakami #
- Funkcja dir
- Notki dokumentacyjne __doc__
- Notki dokumentacyjne zdefiniowane przez użytkownika
- Standardy i priorytety notek dokumentacyjnych
- Wbudowane notki dokumentacyjne
- PyDoc funkcja help
- PyDoc raporty HTML
- Python 3.2 i nowsze wersje: tryb PyDoc dla wszystkich przeglądarek
- Python 3.2 i wersje wcześniejsze: klient GUI
- Nie tylko notki docstrings pakiet Sphinx
- Zbiór standardowej dokumentacji
- Zasoby internetowe
- Publikowane książki
- Często spotykane problemy programistyczne
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę quiz
- Sprawdź swoją wiedzę odpowiedzi
- Sprawdź swoją wiedzę ćwiczenia do części trzeciej
- Źródła dokumentacji Pythona
- Część IV Funkcje i generatory
- Rozdział 16. Podstawy funkcji
- Dlaczego używamy funkcji
- Tworzenie funkcji
- Instrukcje def
- Instrukcja def uruchamiana jest w czasie wykonania
- 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
- Rozdział 17. Zasięgi
- Podstawy zasięgów w Pythonie
- Reguły dotyczące zasięgów
- Rozwiązywanie nazw reguła LEGB
- Inne zasięgi Pythona przegląd
- Przykład zasięgu
- Zasięg wbudowany
- Przedefiniowanie wbudowanych nazw: lepiej czy gorzej?
- Instrukcja global
- Projektowanie programów: minimalizowanie stosowania zmiennych globalnych
- Projektowanie programów: minimalizowanie 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
- Proste funkcje fabrykujące
- Funkcje fabrykujące kontra klasy, runda pierwsza
- Zachowywanie stanu zasięgu zawierającego za pomocą argumentów domyślnych
- Zasięgi zagnieżdżone, wartości domyślne i wyrażenia lambda
- Zmienne pętli mogą wymagać wartości domyślnych, a nie zasięgów
- Dowolne zagnieżdżanie zasięgów
- Instrukcja nonlocal w Pythonie 3.x
- Podstawy instrukcji nonlocal
- Instrukcja nonlocal w akcji
- Użycie zmiennych nielokalnych w celu modyfikacji
- Przypadki graniczne
- Czemu służą zmienne nonlocal? Opcje zachowania stanu
- Zachowanie stanu: zmienne nonlocal (tylko w wersji 3.x)
- Zachowanie stanu: zmienne globalne tylko jedna kopia
- Zachowanie stanu: klasy jawne atrybuty (wprowadzenie)
- Zachowanie stanu: atrybuty funkcji (w wersjach 3.x i 2.x)
- Zachowanie stanu: obiekty mutowalne duchy przeszłości języka Pyton?
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę quiz
- Sprawdź swoją wiedzę odpowiedzi
- Podstawy zasięgów w Pythonie
- Rozdział 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
- Słowa kluczowe
- Wartości domyślne
- Łączenie słów kluczowych i wartości domyślnych
- Przykłady dowolnych argumentów
- Nagłówki: zbieranie argumentów
- Wywołania: rozpakowywanie argumentów
- Ogólne zastosowanie funkcji
- Zlikwidowana wbudowana funkcja apply (Python 2.x)
- Argumenty tylko ze słowami kluczowymi (z Pythona 3.x)
- Reguły dotyczące kolejności
- Czemu służą argumenty ze słowami kluczowymi?
- Przykład z funkcją obliczającą minimum
- Pełne rozwiązanie
- Dodatkowy bonus
- Puenta
- Uogólnione funkcje działające na zbiorach
- Emulacja funkcji print z Pythona 3.0
- Wykorzystywanie argumentów ze słowami kluczowymi
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę quiz
- Sprawdź swoją wiedzę odpowiedzi
- Podstawy przekazywania argumentów
- Rozdział 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
- Rekurencja kontra kolejki i stosy
- Cykle, ścieżki i ograniczenia stosu
- Więcej przykładów rekurencji
- Obiekty funkcji atrybuty i adnotacje
- Pośrednie wywołania funkcji obiekty pierwszej klasy
- Introspekcja funkcji
- Atrybuty funkcji
- Adnotacje...
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-9170-3 |
Rozmiar pliku: | 6,8 MB |