Podstawy Pythona
Kurs programowania w Pythonie (bez programowania obiektowego). Tematycznie odpowiada kursowi 'Podstawy Javy' - uczen, ktory zrobi oba, zobaczy te sama logike w dwoch jezykach (rozna skladnia).
Dla kogo: Liceum i technikum: podstawy Pythona, także pod maturę i INF.04. Więcej o kursie
Wprowadzenie do Pythona
Pierwszy program i funkcja print. Podstawowe typy. Operacje arytmetyczne. Instrukcje warunkowe i petla for. (Odpowiednik tematu 1 z kursu Java - ta sama logika, prostsza skladnia.)
- Pierwszy program: Hello, World!
- Wypisz tekst Mój pierwszy program
- Wypisz tekst w trzech liniach
- Zmienne i podstawowe typy danych
- Przedstaw się za pomocą f-stringa
- Operatory arytmetyczne na dwóch liczbach
- Potęgowanie: 2 do potęgi 3
- Pole koła z użyciem math.pi
- Warunki if, elif i else na liczbie
- Czy możesz głosować - sprawdź wiek
- Pętla for z range i po liście owoców
- Liczby od 1 do 10: parzysta czy nieparzysta
Zmienne, typy i operatory
Typy proste (int, float, str, bool). Przypisanie i typowanie dynamiczne. Operatory arytmetyczne. Konwersja typow (int(), float(), str()). Dzielenie / vs // i reszta %. Roznice wzgledem Javy: brak deklaracji typu, brak ++/--, / zawsze daje float.
- Literały: liczby, tekst i wartości logiczne
- Przedstaw się zmiennymi czterech typów
- Typowanie dynamiczne i kilka zmiennych naraz
- Suma dwóch zmiennych: 15 i 30
- Działania arytmetyczne na liczbach całkowitych
- Pięć działań na liczbach 9 i 4
- Konwersja typów: int, float i str
- Rzutowanie liczby 5.75 na int
- Zwiększanie i zmniejszanie: += i -=
- Zwiększ liczbę o 1, potem zmniejsz o 2
- Dzielenie zwykłe, całkowite i reszta
- Dzielenie całkowite i reszta: 17 przez 4
- Typy proste i funkcja type()
- Po jednej zmiennej każdego typu prostego
- Automatyczna konwersja int na float
- Działania na int i float: 7 i 2.5
- Pięć działań na liczbach 8 i 3
- Zwiększ 15 o 5 i zmniejsz o 3
- Pole i obwód koła o promieniu 7.5
- Suma i iloczyn liczby całkowitej i ułamka
- Przedstaw się i policz, co będzie za rok
Instrukcje warunkowe
Operatory porownania i logiczne (and, or, not). Instrukcje if / elif / else. Dopasowanie match-case (odpowiednik switch z Javy). Wyrazenie warunkowe (a if warunek else b). Porownywanie tekstow. Roznice wzgledem Javy: slowa and/or/not zamiast &&/||/!, wartosci True/False (z wielkiej litery).
- Operatory porównania: True i False
- Wszystkie porównania liczb 15 i 25
- Operatory logiczne and, or i not
- Warunki złożone na trzech liczbach
- Ocena za punkty: if, elif i else
- Czy jesteś pełnoletni
- Czy liczba jest wielokrotnością 5
- Gorąco czy chłodno - temperatura
- Zaliczone czy nie - próg 50 punktów
- Ocena opisowa na podstawie punktów
- Liczba dodatnia, ujemna czy zero
- Match-case: nazwa dnia tygodnia
- Ocena 3, 4 lub 5 za punkty
- Nazwa miesiąca z numeru 1-12
- Status Gorąco lub Chłodno w zmiennej
- Wyrażenie warunkowe w jednej linii
- Czy wiek mieści się w przedziale 18-65
- Porównywanie tekstów a wielkość liter
- Porównaj napisy bez wielkości liter
- Porównanie liczb float z tolerancją
- Produkt dostępny czy niedostępny
Petle i rekurencja
Petla for z range(). Petla while. Odpowiednik do-while (while True + break - Python nie ma do-while). Przerywanie i kontynuowanie (break, continue). Petle zagniezdzone. Rekurencja (silnia, Fibonacci, liczby pierwsze). Iteracja po liscie danych (dodatek data=[]).
- Pętla for i range z krokiem
- Kwadraty liczb od 1 do 10
- Wypisz liczby parzyste do 20
- Pętla while: odliczanie od 5
- Odliczanie od 10 do startu
- Zamiast do-while: while True i break
- Liczby od 1 do 5 i komunikat końca pętli
- Break i continue w pętli for
- Pomiń wielokrotności 4, zatrzymaj na 15
- Pętle zagnieżdżone: tabliczka mnożenia 3x3
- Suma liczb nieparzystych od 1 do 10
- Silnia liczona rekurencyjnie
- Funkcja rekurencyjna: silnia liczby 5
- 10 wyrazów ciągu Fibonacciego
- Ile jest liczb pierwszych do 20
- Suma elementów gotowej listy data
- Największa i najmniejsza wartość bez max i min
- Ile liczb parzystych jest na liście
- Popraw pętlę: liczby od 1 do 10
Listy
Listy w Pythonie - odpowiednik tablic z Javy, ale wygodniejsze: dynamiczny rozmiar, metody append/insert/remove/pop, wycinki (slicing), iteracja, wbudowane len/sum/max/min/sorted, list comprehension. Cwiczenia na gotowych danych (dodatek data=[]).
- Indeksy listy i długość len()
- Pierwszy, ostatni element i długość listy
- Wycinki listy (slicing)
- Odwróć listę wycinkiem [::-1]
- Dodawanie i usuwanie elementów listy
- Zbuduj listę metodą append
- Enumerate: indeks i element w pętli
- Suma elementów listy własną pętlą
- Funkcje sum, max, min i sorted
- Suma, maksimum, minimum i średnia listy
- Ile elementów jest większych od średniej
- Lista elementów większych od średniej
- List comprehension: kwadraty i filtr parzystych
- Lista kwadratów przez list comprehension
- Wybierz liczby parzyste przez list comprehension
- Połącz dwie listy operatorem +
- Zamień kwadraty na sześciany liczb 1-5
Słowniki
Slownik (dict) - kolekcja par klucz: wartosc. Odpowiednik mapy (HashMap) z Javy, ale wbudowany w jezyk i bardzo wygodny. Tworzenie, dostep po kluczu, dodawanie/usuwanie, sprawdzanie klucza (in, .get), iteracja (.keys/.values/.items), slownik jako licznik. Druga - obok listy - kluczowa kolekcja Pythona.
- Słownik: pary klucz i wartość
- Cennik w słowniku: cena masła
- Dodawanie, zmiana i usuwanie w słowniku
- Uzupełnij słownik ucznia i zmień ocenę
- Operator in i metoda get z wartością domyślną
- Stolice państw z wartością domyślną
- Pętla po kluczach i parach słownika
- Wypisz punkty uczniów przez items()
- Łączny koszt zakupów ze słownika
- Zliczanie liter w słowie abracadabra
- Ile razy występuje każda liczba
- Osoba z największą liczbą punktów
Krotki
Krotka (tuple) - uporzadkowany zbior elementow jak lista, ale NIEMODYFIKOWALNY (immutable). Tworzenie, dostep po indeksie, rozpakowywanie (unpacking), zwracanie wielu wartosci z funkcji, lista krotek. Krotek uzywamy tam, gdzie dane nie maja sie zmieniac (np. wspolrzedne, rekord).
Zbiory
Zbior (set) - kolekcja UNIKALNYCH elementow bez kolejnosci. Tworzenie, automatyczne usuwanie duplikatow, dodawanie/usuwanie, szybkie sprawdzanie przynaleznosci (in), operacje matematyczne: suma (|), czesc wspolna (&), roznica (-). Uwaga: zbior nie ma ustalonej kolejnosci, wiec do wyswietlenia elementow uzywamy sorted().
Algorytmy na listach
Klasyczne algorytmy zaimplementowane wlasnorecznie (bez gotowca sorted): sortowanie babelkowe i przez wstawianie, wyszukiwanie liniowe i binarne. Cwiczenia na gotowych danych (dodatek data=[]). Lustro tematu o algorytmach z Javy.
- Sortowanie bąbelkowe listy liczb
- Posortuj rosnąco sortowaniem bąbelkowym
- Sortowanie bąbelkowe z licznikiem zamian
- Sortowanie przez wstawianie
- Posortuj listę malejąco
- Wyszukiwanie liniowe wartości w liście
- Indeks największego elementu listy
- Wyszukiwanie binarne w posortowanej liście
- Wyszukaj binarnie sumę dwóch pierwszych liczb
- Druga co do wielkości różna wartość
Funkcje i moduly
Wlasne funkcje (def, parametry, return, argumenty domyslne). Moduly biblioteki standardowej: math (pierwiastki, zaokraglenia, stale) i random (liczby losowe). Operacje na napisach (metody str). Lustro tematu o klasach bibliotecznych z Javy - w Pythonie funkcje stoja samodzielnie (bez klas).
- Własna funkcja dodająca dwie liczby
- Funkcja licząca pole prostokąta
- Argument domyślny: powitanie gościa
- Funkcja potęgi z domyślnym wykładnikiem
- Moduł math: pierwiastek i zaokrąglenia
- Pole i obwód koła o promieniu 5
- Moduł random: losowa liczba i rzut monetą
- Symulacja trzech rzutów kostką
- Metody napisów: upper, replace i split
- Policz słowa i znaki w zdaniu
- Ile razy litera o występuje w słowie
- Czy słowo kajak jest palindromem
Wyjatki
Obsluga bledow wykonania: try / except / else / finally. Lapanie konkretnych typow (ZeroDivisionError, ValueError). Zglaszanie wyjatkow (raise). Lustro tematu o wyjatkach z Javy (tam try/catch/finally) - w Pythonie 'except' zamiast 'catch'.