# Python Tutorial

Python jest łatwym do nauki, wszechstronnym językiem programowania. Ma wydajne wysoko-poziomowe struktury danych i proste ale efektywne podejście do programowania zorientowanego obiektowo. Elegancka składnia Pythona i dynamiczne typowanie, wraz z jego naturą interpretowania, czyni go idealnym językiem do skryptów i szybkiego rozwijania aplikacji w wielu obszarach na większości platform.

Interpreter Pythona i obszerna biblioteka standardowa są swobodnie dostępne w formie źródeł oraz binarnej dla wszystkich głównych platform na stronie internetowej Pythona, https://www.python.org/, i mogą być dowolnie rozpowszechniane. Ta sama strona zawiera również dystrybucje i odniesienia do wielu wolnych zewnętrznych modułów, programów i narzędzi Pythona oraz dodatkowej dokumentacji.

Interpreter Pythona można łatwo rozszerzyć nowymi funkcjami i typami danych zaimplementowanymi w C lub C++ (lub innych językach wywoływalnych z C). Python jest również odpowiedni jako język rozszerzeń dla konfigurowalnych aplikacji.

Ten tutorial wprowadza nieformalnie czytelnika w podstawowe koncepcje i cechy języka i systemu Python. Pomocnym jest mieć interpreter Pythona pod ręką dla praktycznych doświadczeń, ale wszystkie przykłady są samowystarczalne, więc tutorial może być również czytany off-line.

Opisy standardowych obiektów i modułów znajdziesz w Biblioteka standardowa Pythona. Dokumentacja języka Python daje bardziej formalną definicję języka. Aby pisać rozszerzenia w C lub C++, przeczytaj Extending and Embedding the Python Interpreter i Python/C API Reference Manual. Jest również kilka książek omawiających wyczerpująco Pythona.

Ten tutorial nie próbuje wyczerpująco omówić każdą funkcję Pythona, lub nawet każdą często używaną funkcję. Zamiast tego wprowadza wiele funkcji najbardziej wartych zauważenia i da ci dobre rozumienie smaku i stylu języka. Po przeczytaniu go, będziesz w stanie czytać i pisać moduły i programy Pythona, oraz będziesz gotowy uczyć się więcej o różnych modułach bibliotek Pythona opisanych w Biblioteka standardowa Pythona.

Warto również przejrzeć Glosariusz.

- 1. Na zaostrzenie apetytu
- 2. Używanie Interpretera Pythona
  - 2.1. Wywoływanie Interpretera
    - 2.1.1. Przekazywanie argumentów
    - 2.1.2. Tryb interaktywny
  - 2.2. Interpreter i jego środowisko
    - 2.2.1. Strona kodowa kodu źródłowego
- 3. Nieformalne wprowadzenie do Pythona
  - 3.1. Używanie Pythona jako kalkulatora
    - 3.1.1. Liczby
    - 3.1.2. Ciągi znaków
    - 3.1.3. Listy
  - 3.2. Pierwsze kroki do programowania
- 4. Więcej narzędzi kontroli przepływu
  - 4.1. Instrukcje `if`
  - 4.2. Instrukcje `for`
  - 4.3. Funkcja `range()`
  - 4.4. `break` i `continue` oraz klauzula `else` w pętlach
  - 4.5. Instrukcje `pass`
  - 4.6. Definiowanie funkcji
  - 4.7. Więcej o definiowaniu funkcji
    - 4.7.1. Domyślne wartości argumentów
    - 4.7.2. Argumenty nazwane
    - 4.7.3. Parametry specjalne
      - 4.7.3.1. Argumenty pozycyjne-lub-kluczowe
      - 4.7.3.2. Parametry Tylko-Pozycyjne (Positional-Only)
      - 4.7.3.3. Argumenty Tylko-Kluczowe (Keyword-Only)
      - 4.7.3.4. Przykłady Funkcji
      - 4.7.3.5. Podsumowanie
    - 4.7.4. Arbitralne listy argumentów
    - 4.7.5. Rozpakowywanie listy argumentów
    - 4.7.6. Wyrażenia Lambda
    - 4.7.7. Napisy dokumentujące (docstringi)
    - 4.7.8. Adnotacje funkcji
  - 4.8. Intermezzo: Styl kodowania
- 5. Struktury danych
  - 5.1. Więcej na temat list
    - 5.1.1. Używanie list jako stosów
    - 5.1.2. Używanie list jako kolejek
    - 5.1.3. Wyrażenia listowe
    - 5.1.4. Zagnieżdżone wyrażenia listowe
  - 5.2. Instrukcja `del`
  - 5.3. Krotki i sekwencje
  - 5.4. Zbiory
  - 5.5. Słowniki
  - 5.6. Techniki pętli
  - 5.7. Więcej na temat warunków
  - 5.8. Porównywanie sekwencji i innych typów
- 6. Moduły
  - 6.1. Więcej o modułach
    - 6.1.1. Executing modules as scripts
    - 6.1.2. The Module Search Path
    - 6.1.3. „Compiled” Python files
  - 6.2. Standard Modules
  - 6.3. The `dir()` Function
  - 6.4. Packages
    - 6.4.1. Importing * From a Package
    - 6.4.2. Intra-package References
    - 6.4.3. Packages in Multiple Directories
- 7. Input and Output
  - 7.1. Fancier Output Formatting
    - 7.1.1. Formatted String Literals
    - 7.1.2. The String format() Method
    - 7.1.3. Manual String Formatting
    - 7.1.4. Old string formatting
  - 7.2. Reading and Writing Files
    - 7.2.1. Methods of File Objects
    - 7.2.2. Saving structured data with `json`
- 8. Błędy i Wyjątki
  - 8.1. Błedy składni
  - 8.2. Wyjątki
  - 8.3. Obsługa wyjątków
  - 8.4. Rzucanie Wyjątków
  - 8.5. Łańcuch Wyjątków
  - 8.6. Wyjątki Zdefiniowane przez Użytkownika
  - 8.7. Defining Clean-up Actions
  - 8.8. Predefined Clean-up Actions
- 9. Klasy
  - 9.1. Kilka słów o nazwach i obiektach
  - 9.2. Python Scopes and Namespaces
    - 9.2.1. Scopes and Namespaces Example
  - 9.3. A First Look at Classes
    - 9.3.1. Class Definition Syntax
    - 9.3.2. Class Objects
    - 9.3.3. Instance Objects
    - 9.3.4. Method Objects
    - 9.3.5. Class and Instance Variables
  - 9.4. Random Remarks
  - 9.5. Inheritance
    - 9.5.1. Multiple Inheritance
  - 9.6. Private Variables
  - 9.7. Odds and Ends
  - 9.8. Iterators
  - 9.9. Generators
  - 9.10. Generator Expressions
- 10. Krótka wycieczka po Bibliotece Standardowej
  - 10.1. Interfejs Systemu Operacyjnego
  - 10.2. File Wildcards
  - 10.3. Command Line Arguments
  - 10.4. Error Output Redirection and Program Termination
  - 10.5. String Pattern Matching
  - 10.6. Mathematics
  - 10.7. Internet Access
  - 10.8. Dates and Times
  - 10.9. Kompresja Danych
  - 10.10. Performance Measurement
  - 10.11. Kontrola Jakości
  - 10.12. Dostarczone z bateriami
- 11. Brief Tour of the Standard Library — Part II
  - 11.1. Output Formatting
  - 11.2. Templating
  - 11.3. Working with Binary Data Record Layouts
  - 11.4. Multi-threading
  - 11.5. Logging
  - 11.6. Weak References
  - 11.7. Tools for Working with Lists
  - 11.8. Decimal Floating Point Arithmetic
- 12. Środowiska wirtualne i pakiety
  - 12.1. Wprowadzenie
  - 12.2. Tworzenie Środowisk Wirtualnych
  - 12.3. Managing Packages with pip
- 13. Co dalej?
- 14. Interactive Input Editing and History Substitution
  - 14.1. Tab Completion and History Editing
  - 14.2. Alternatives to the Interactive Interpreter
- 15. Arytmetyka liczb zmiennoprzecinkowych: Problemy i ograniczenia
  - 15.1. Representation Error
- 16. Załącznik
  - 16.1. Tryb interaktywny
    - 16.1.1. Przechwytywanie błędów
    - 16.1.2. Wykonywalne skrypty Pythona
    - 16.1.3. Plik interaktywnego uruchomienia
    - 16.1.4. The Customization Modules