Python Notatki¶
„Python Notatki” to podręcznik języka Python. Pierwsza część, „Python Podstawy”, prowadzi czytelnika od instalacji interpretera i przygotowania środowiska pracy, przez pierwsze eksperymenty w konsoli i systematyczne omówienie typów danych oraz konstrukcji języka, po programowanie obiektowe, wydajność, tablice NumPy, współbieżność i warsztat programisty. Druga część, „Python Zastosowania”, obejmuje biblioteki i ich zastosowania, ułożone w niezależne ścieżki do wyboru.
Stanem odniesienia jest Python 3.14 instalowany za pomocą narzędzia Python Install Manager w systemie Windows.
Python Podstawy¶
- Instalacja i środowisko pracy — Python Install Manager, pip, środowiska wirtualne, konfiguracja narzędzi
- Konsola — praca w konsoli interaktywnej i pierwszy skrypt
- Nazwy i typy — nazwy, typy proste, konwersje, obiekty i pamięć, operatory
- Sterowanie przepływem — instrukcje warunkowe, pętle i iteratory
- Typy złożone — lista, krotka, słownik, zbiory, złożenia
- Funkcje — definiowanie, argumenty, zasięg nazw i domknięcia, rekurencja, funkcje generatorowe, dekoratory
- Moduły, pakiety i biblioteka standardowa — moduły i import, skrypt jako program, argumenty wiersza poleceń, pakiety, struktura projektu i pierwsze testy, biblioteka standardowa i collections, functools, itertools
- Wyjątki i zarządzanie zasobami — obsługa i zgłaszanie wyjątków, styl EAFP i testy wyjątków, instrukcja with, diagnostyka i debugger, logowanie
- Wejście, wyjście i pliki — formatowanie tekstu, print i strumienie, animacje w terminalu, pliki tekstowe i binarne, ścieżki, CSV i JSON
- Klasy i obiekty — definicja klasy, atrybuty i metody, właściwości, dziedziczenie i własne wyjątki, cykl życia obiektu
- Model danych — metody specjalne i protokoły — przeciążanie operatorów, protokoły kolekcji i wywołania, iteracja, menedżery kontekstu i obiekty plikopodobne, deskryptory
- Programowanie obiektowe — mechanizmy zaawansowane — dziedziczenie wielokrotne i MRO, mixiny i klasy abstrakcyjne, klasy danych, wzorce projektowe, metaprogramowanie
- Wydajność i optymalizacja — pomiar czasu i profilowanie, optymalizacja kodu, drogi przyspieszania
- NumPy i Matplotlib — tablice ndarray, operacje wektorowe, wykresy w stylu obiektowym
- Współbieżność — wątki, procesy i GIL — wątki i GIL, synchronizacja, procesy i pule wykonawców, pomiary i asyncio
- Warsztat programisty i dalsza droga — pytest zaawansowany, adnotacje typów i mypy, Ruff, pre-commit i CI, co dalej
Python Zastosowania¶
Część „Python Zastosowania” składa się ze ścieżek — niezależnych, skończonych samouczków bibliotek: dane, uczenie maszynowe, aplikacje, automatyzacja. Każda ścieżka zakłada znajomość języka z części „Python Podstawy” i kończy się projektem spinającym jej narzędzia; wprowadzenie opisuje układ i wymagania.
Ścieżka danych
- Jupyter i warsztat danych — notatnik w VSC, środowisko projektu danych, czytanie dokumentacji bibliotek, pierwsza analiza
- NumPy w praktyce — tablice wielowymiarowe, statystyka i porządkowanie, algebra liniowa, losowość i symulacje, wydajność i pamięć
- Matplotlib w praktyce — anatomia wykresu, wykresy dla danych, szeregi czasowe, wiele paneli, wykres do raportu
- pandas — tabele — Series i DataFrame, wczytywanie i zapis, selekcja, typy i braki, przekształcenia
- pandas — analiza — grupowanie, tabele przestawne, łączenie tabel, szeregi czasowe, wydajność i potok
- Projekt: raport z danych — zadanie, dane i decyzje, potok z testami, raport z rysunkami i tabelami
Ścieżka uczenia maszynowego
- Uczenie maszynowe — pojęcia i warsztat — pojęcia, pierwszy model od początku do końca, warsztat scikit-learn, przeuczenie i uczciwa ocena
- Klasyfikacja — miary klasyfikacji, regresja logistyczna, drzewa decyzyjne i lasy losowe, wybór modelu i interpretacja
- Regresja i przygotowanie danych — regresja liniowa i miary błędu, przygotowanie danych, regularyzacja i inżynieria cech, modele nieliniowe i wybór
- Uczenie bez nadzoru — grupowanie, redukcja wymiaru, obserwacje nietypowe
- PyTorch — tensory i sieć neuronowa — tensory, automatyczne różniczkowanie, sieć neuronowa, klasyfikacja obrazów, trening w praktyce
- Projekt: od danych do modelu — zadanie, dane i decyzje, potok, modele i wybór, model końcowy, raport i użycie
Ścieżka aplikacji
- Bazy danych — sqlite3 i SQLAlchemy — moduł sqlite3, schemat i zapytania SQL, SQLAlchemy — model i sesja, relacje i zapytania ORM, warstwa danych aplikacji
- HTTP i API — protokół HTTP, serwer w bibliotece standardowej, klient httpx, interfejs API w praktyce
- FastAPI — pierwsza aplikacja, modele danych Pydantic, serwer sklepu, API nad warstwą danych, testy i uruchomienie
- Interfejs graficzny tkinter — okno i widżety, menedżery układu, zdarzenia i zmienne kontrolne, aplikacja obiektowa z menu i dialogami, widżety ttk, Canvas, CustomTkinter, mini-projekt: menedżer kontaktów
- Pakowanie i dystrybucja — pakiet do instalacji, budowanie i publikacja, zależności i wersje, aplikacja dla użytkownika
- Projekt: aplikacja z bazą, API i oknem — serwer: baza i API, klient: moduł API i okno, testy, uruchomienie i dostawa
Ścieżka automatyzacji
- Wyrażenia regularne — składnia wzorców, wyszukiwanie, dzielenie i zamiana, wzorce w praktyce, pułapki, wydajność i testy
- Narzędzia wiersza poleceń — argumenty i opcje, strumienie, kody wyjścia i dziennik, procesy, pliki i konfiguracja, od skryptu do polecenia
- Pobieranie i parsowanie stron — HTML i parser, pobieranie stron, dane ze stron, narzędzie i zasady
- Pliki Office i obrazy — arkusze Excel, dokumenty Word, obrazy, raport z danych
- Projekt: narzędzie automatyzujące — założenia i architektura, moduły narzędzia, testy i wdrożenie
Wszystkie cztery ścieżki są ukończone.