Generator to specjalna funkcja która zwraca iterator. Zamiast zwracać wszystkie wartości na raz, generuje je po kolei, „leniwie” (lazy evaluation). Dlaczego generatory? Kluczowe słowo: yield (zamiast return) Zwykła funkcja vs Generator Zwykła funkcja: Generator: Jak działa yield Kluczowe: Pierwszy praktyczny generator Generator vs Lista – porównanie pamięci Generator expressions (wyrażenia generatorowe) Podobne do list […]

23. Python – Generatory


Closure (domknięcie) to funkcja, która „zapamiętuje” zmienne z zakresu zewnętrznego, nawet po zakończeniu wykonywania funkcji zewnętrznej. Kluczowe elementy: Dlaczego closures są ważne? Podstawy – funkcje zagnieżdżone Zwracanie funkcji wewnętrznej Ważne: Funkcja wewnetrzna „zapamiętała” zmienną wiadomosc mimo że zewnetrzna() już się zakończyła! Pierwszy prawdziwy closure Co się dzieje: Closure z wieloma zmiennymi Kluczowe słowo nonlocal: Przykład: Mnożnik Przykład: Funkcja potęgująca […]

22. Python – Closures (Domknięcia)


Debugging to proces znajdowania i naprawiania błędów (bugów) w kodzie. Rodzaje błędów: Dlaczego debugging jest ważny? Metody debugowania 1. Print debugging (najprostsza) Zalety: Wady: 2. Asercje (Assertions) Użycie: Python 3. Logging – profesjonalne logowanie Poziomy logowania: 4. Debugger PDB (Python Debugger) PDB to wbudowany debugger w Pythonie. Podstawowe komendy PDB: 5. Breakpoint() […]

22. Python – Debugging (Debugowanie)



Generics (Typy ogólne) to mechanizm pozwalający na tworzenie klas, funkcji i struktur danych działających z różnymi typami, zachowując bezpieczeństwo typów. Dlaczego Generics? W Pythonie: Moduł typing (Python 3.5+) Moduł typing Funkcje z typami TypeVar – zmienne typowe TypeVar pozwala stworzyć „placeholder” dla typu. Generic – klasa ogólna Para – generic z dwoma typami Stos (Stack) […]

21. Python – Szablony (wzorce) klas – Generics


Algorytm to precyzyjny zestaw kroków prowadzących do rozwiązania problemu. Dlaczego algorytmy? W tej lekcji: Złożoność obliczeniowa (Big O Notation) Złożoność obliczeniowa mierzy jak szybko rośnie czas wykonania algorytmu wraz ze wzrostem rozmiaru danych. Notacja Big O O(n) – „Big O of n” – opisuje najgorszy przypadek. Najczęstsze złożoności (od najlepszej do najgorszej): Notacja Nazwa Przykład […]

20. Python – Algorytmy: Sortowanie i Przeszukiwanie


Wprowadzenie Wizualizacja danych to kluczowy element analizy – pozwala szybko zrozumieć dane i wyciągnąć wnioski. Biblioteki: Matplotlib – podstawy Instalacja Pierwszy wykres – linia Personalizacja linii Wiele linii na jednym wykresie Typy wykresów Wykres punktowy (scatter) Wykres słupkowy (bar) Wykres słupkowy poziomy Histogram Wykres kołowy (pie) Wyciągnięty kawałek (explode) Wykres pudełkowy (box plot) Wiele wykresów (subplots) Zapisywanie wykresów Pandas + Matplotlib Pandas ma wbudowaną integrację z Matplotlib. Seaborn – piękniejsze wykresy Instalacja Podstawy Seaborn Wykres z regresją liniową Wykres skrzypcowy (violin) Heatmapa (korelacja) Pair plot Praktyczne przykłady Przykład 1: Analiza sprzedaży Przykład 2: Porównanie produktów Przykład 3: Rozkład wieku Przykład 4: Dashboard z wieloma wykresami Podsumowanie Matplotlib: Personalizacja: Seaborn: Integracja z Pandas:

19. Python – Wykresy (Matplotlib i Seaborn)



Analiza danych to proces przetwarzania, czyszczenia i interpretowania danych w celu wyciągnięcia użytecznych informacji. Python jest jednym z najpopularniejszych języków do analizy danych. Format CSV CSV (Comma-Separated Values) to prosty format przechowywania danych tabelarycznych w pliku tekstowym. Struktura: Python ma wbudowany moduł csv do czytania i zapisywania plików CSV. Odczyt pliku CSV Odczyt jako […]

18. Python – Analiza danych: CSV i Pandas


Czym jest SQLite3? SQLite3 to lekka, wbudowana relacyjna baza danych SQL Nie wymaga osobnego serwera – cała baza to jeden plik Python ma wbudowany moduł sqlite3 – nie trzeba nic instalować Idealna do nauki, prototypów i małych/średnich aplikacji SQLite3 to lekka, wbudowana relacyjna baza danych SQL Nie wymaga osobnego serwera […]

17. Python – bazy danych – sqlite


Programowanie obiektowe (Object-Oriented Programming, OOP) to paradygmat programowania, który organizuje kod wokół obiektów i klas. Zamiast myśleć o programie jako o sekwencji instrukcji, myślisz o nim jako o zbiorze obiektów, które ze sobą współpracują. O tym po co nam programie obiektowe możesz przeczytać niżej w materiale. Kluczowe koncepcje: Analogia: Klasa i obiekt Czym jest […]

16. Python – obiektowo



Błędy (errors) i wyjątki (exceptions) to sytuacje, które przerywają normalne wykonanie programu. Bez odpowiedniej obsługi program po prostu się „wysypie” i zakończy działanie. Dlaczego ważna jest obsługa błędów? Przykład bez obsługi błędu: Z obsługą błędu: Struktura try-except Podstawowa składnia Pełna struktura Kolejność: Podstawowe typy błędów FileNotFoundError – brak pliku Obsługa: KeyError – brak […]

15. Python – obsługa błędów i wyjątków