🐍Python🐍 - zajęcia 5 + ćwiczenia
gotowe moduły * moduł Turtle🐢 * pętle * FOR * WHILE
Gotowe moduły:
- Biblioteki gotowych modułów: np. pypi.org
- Instalacja i dodawanie - dobra praktyka ułatwiająca korzystanie z aplikacji - kod dotyczący instalacji biblioteki dodajemy na początku pliku: import nazwa_biblioteki lub gdy biblioteka nie jest zainstalowana piszemy w terminalu - pip install nazwa_biblioteki
- przykład modułu wbudowanego: random - moduł losowości
- np. random.shuffle(moja_lista) - przetasuje elementy listy
UWAGA 1! Zewnętrzna biblioteka nie może być w tym samym folderze co biblioteka random
UWAGA2! Plik z kodem nie może mieć takiej samej nazwy jak nazwa biblioteki z której korzystamy
D.R.Y.
- Don't Repeat Yourself
- to dobra praktyka, kod powinien być maksymalnie intuicyjny i krótki
Tip:
end=" " - kiedy np wypisujemy elementy listy, ten fragment w poleceniu print wypisuje wszystkie elementy w jednej linii oddzielone przy pomocy ", ".
for i in range(5):
print(i, end=", ")
✅ Pętla for
- Używana, gdy wiemy ile razy coś ma się powtórzyć (np. po elementach listy, po zakresie liczb).
- składnia: for zmienna in kolekcja:
✅ Pętla while
- Używana, gdy nie wiemy z góry, ile razy coś ma się powtórzyć – działa, dopóki warunek jest
True
. - składnia: while warunek:
Zastosowanie pętli
- podaj klucze słownika
moj_slownik = {"a": 1, "b": 2, "c": 3}
for klucz in moj_slownik:
print(klucz)
- podaj wartości przypisane do kluczy
moj_slownik = {"a": 1, "b": 2, "c": 3}
for wartosc in moj_slownik:
print(moj_slownik[wartosc])
- inne sposoby
# 1 # ITEMS
moj_slownik = {"a": 1, "b": 2, "c": 3}
for klucz, wartosc in moj_slownik.items():
print(wartosc)
# 2 # ITEMS
moj_slownik = {"a": 1, "b": 2, "c": 3}
for klucz in moj_slownik.items():
print("kluczem jest:", klucz)
print("Wartoscia jest:", wartosc)
🐢Moduł Turtle
📌 Co to jest turtle
?
turtle
to wbudowany moduł graficzny w Pythonie.- Pozwala rysować figury i wzory za pomocą „żółwia” poruszającego się po ekranie.
- Świetny do nauki programowania i grafiki wektorowej.
- Żółw rysuje jakby „ciągnął piórko”.
turtle
powstał na bazie idei z języka Logo, stworzonego do nauki dzieci.
📌Wykorzystanie
- uruchamianie i utworzenie żółwia
import turtle
zolwik = turtle.Turtle()
- zakończenie pracy żółwia:
zolwik.hideturtle()
turtle.exitonclick()
- ustawienia wyświetlania:
- kolor i rozmiar okna:
sc = turtle.Screen()
sc.setup(width=600, height=400) # Window size: 600x400 pixels
sc.bgcolor("pink")
- kolor pióra: zolwik.pencolor("white")
- rozmiar pióra: zolwik.pensize(5)
- zdjęcie (umieścić je w folderze na którym pracujemy, alternatywa koloru tła):
sc.bgpic("wezyk.gif") # Ustawienie zdjęcia na tło
- inne ustawienia stylu
Komenda | Co robi |
---|---|
pencolor("red") |
Zmienia kolor rysowania |
fillcolor("blue") |
Kolor wypełnienia figury |
pensize(3) |
Grubość linii |
begin_fill() / end_fill() |
Wypełnienie rysowanej figury |
speed(1-10/'fastest') |
Ustawia prędkość żółwia |
hideturtle() / showturtle() |
Ukrywa lub pokazuje żółwia |
- by okno nie zamknęło się od razu po zakończeniu rysowania wpisujemy: turtle.done()
- najważniejsze komendy:
Komenda | Działanie |
---|---|
forward(x) / fd(x) |
Idź do przodu o x pikseli |
backward(x) / bk(x) |
Idź do tyłu o x pikseli |
right(kąt) / rt(kąt) |
Obrót w prawo o kąt stopni |
left(kąt) / lt(kąt) |
Obrót w lewo o kąt stopni |
penup() |
Podnieś pisak (nie rysuje) |
pendown() |
Opuść pisak (rysuje znowu) |
goto(x, y) |
Przejdź do współrzędnych (x, y) |
circle(r) |
Rysuje okrąg o promieniu r |
setheading(kąt) |
Obraca żółwia w konkretnym kierunku |
clear() |
Czyści ekran |
reset() |
Czyści i resetuje pozycję żółwia |
🐍Zadanie
1a. Schody
Polecenie: Odtwórz wzór:

Kod:
import turtle
######## początkowe ustawienia ########
zolwik = turtle.Turtle()
zolwik.speed(5)
zolwik.shape("turtle")
zolwik.pensize(5)
zolwik.pencolor("white")
sc = turtle.Screen() #ustawienie okna wyswietlania
sc.setup(width=600, height=1000) # rozmiar okna 600x1000 pikseli
sc.bgpic("wezyk.gif") # Ustawienie zdjęcia na tło
######## schody ########
bok = 50
kat = 90 # kąt skrętu
liczba_schodow = 4
liczba_podpor = 3
# Podstawa schodów
for h in range(2):
zolwik.forward(bok*liczba_schodow)
zolwik.left(kat)
#Rysowanie schodków
for i in range(liczba_schodow):
zolwik.forward(bok)
zolwik.left(kat)
zolwik.forward(bok)
zolwik.right(kat)
zolwik.back(bok) #cofamy zolwika
zolwik.left(kat*2) #odwracamy zolwika
#Rysowanie podpór
for j in range(liczba_podpor):
wysokosc = bok + j * bok # chcemy żeby słupek był coraz większy, dlatego powiększamy go za kazdym razem o dlugosc najkrotszego boku
zolwik.left(kat) # obracamy się do rysowania slupka
zolwik.forward(wysokosc) # rysujemy slupek
zolwik.right(kat*2) # obracamy się do zawracania
zolwik.forward(wysokosc) # wracamy po slupku
zolwik.left(kat) # obracamy się do przejścia do innego slupka
zolwik.forward(bok) # przechodzimy do innego slupka
########
zolwik.hideturtle()
turtle.exitonclick()
Wynik:

1b. Pętla kwadratów
Polecenie: Odtwórz wzór:
Kod:
import turtle
zolwik = turtle.Turtle()
zolwik.speed(2)
zolwik.shape("turtle") #kształt ikony
zolwik.pensize(5)
zolwik.pencolor("white")
sc = turtle.Screen() #ustawienie okna wyswietlania
sc.setup(width=1500, height=1000) # rozmiar okna 800x1000 pikseli
sc.bgcolor("green") # Ustawione tło
###################### pętla kwadratów ########################
bok = 50
kat = 90
liczba_kwadratow = 8
for j in range(liczba_kwadratow):
for i in range(4):
zolwik.forward(bok + j*bok)
zolwik.left(kat)
########
zolwik.hideturtle()
turtle.exitonclick()
Odpowiedź:

2.Logi
Polecenie: Wcielcie się w rolę osoby zajmującej się administracją IT. Dostałyście zgłoszenie, że w czerwcu był jakiś problem z aplikacją działającą na serwerze. Zgrałyście z niego logi. Macie je teraz dostępne w postaci listy w Pythonie w następującej postaci:
logi = [
["[2025-03-25T10:41:50] [WARN] Ciepło tutaj..."],
["[2025-03-25T11:58:50] [INFO] Cośtam liczę."],
["[2025-04-25T20:18:51] [INFO] Zadanie wykonane."],
["[2025-05-25T21:12:52] [ERROR] Bzzzztttt... dzielisz przez zero."],
["[2025-05-25T22:48:50] [INFO] Plik przetworzony."],
["[2025-06-25T01:48:50] [INFO] Połączona z serwisem www."],
["[2025-06-25T05:48:22] [ERROR] Booom... i wybuchło..."],
["[2025-06-25T15:48:31] [WARN] Miejsce na dysku się kończy."],
["[2025-07-25T20:48:50] [ERROR] Zły format pliku."],
["[2025-07-25T21:48:32] [INFO] Przesyłka gotowa."],
["[2025-07-25T22:21:50] [INFO] Program ściągnięty."],
["[2025-07-25T25:48:50] [INFO] A ja liczę i liczę...."],
]
Korzystając z pętli for wyciągnijcie wpisy z czerwca zawierające komunikat “ERROR” (oba warunki
muszą być spełnione!).
Kod:
for wpis in logi:
tekst = wpis[0]
czesci = tekst.split("] ") # szukamy nawiasów ze spacją i dzielimy tekst logów
if len(czesci) == 3: # kontrola poprawności danych (czy tekst prawidłowo się podzielił)
data = czesci[0].strip("[]")
komunikat = czesci[1].strip("[]")
wiadomosc = czesci[2]
# Sprawdzamy, czy komunikat to ERROR
if komunikat == "ERROR" and data.startswith("2025-06"):
print(wpis)
3.ciąg Fibonacciego
spróbujcie napisać aplikację liczącą ciąg Fibonacciego startując
od 0 i dając użytkownikowi możliwość wpisania maksymalnej wartości dla pozycji ciągu.
https://en.wikipedia.org/wiki/Fibonacci_sequence