Pętla for (żółwik) + zadania

Pętla for
- Wykonuje blok kodu określoną ilość razy
- Pozwala przemieszczać się po elementach jakieś sekwencji

for litery in "Słowo":
print(litery)
for elementy in ["a","b","c"]:
print(elementy)
przykłady użycia
Dobre nawyki - jeżeli nie będziemy w pętli korzystać z "elementu" to używamy znaku podłogi _
Pętla for - użycie ze słownikiem
moj_slownik = {"a": 1, "b": 2, "c": 3}
for klucz in moj_slownik:
print(klucz)
wyświetla klucze słownika
moj_slownik = {"a": 1, "b": 2, "c": 3}
for klucz in moj_slownik:
print(moj_slownik[klucz])
wyświetla wartość kluczy
moj_slownik = {"a": 1, "b": 2, "c": 3}
for klucz,wartosc in moj_slownik.items():
print("Kluczem jest: ", klucz)
print("Wartość jest: ", wartosc)
rozdziela i wyświetla klucze i wartość
Funkcja range
Ta funkcja generuje sekwencje na podstawie podanych przez nas danych. Podanie końca jest obowiązkowe.
range(start, koniec, krok)
for _ in range(5):
print("Hej!")
przykład użycia
for i in range(100, 0, -1):
print(i)
odlicza w dół
Import bibliotek
import nazwa_biblioteki
Aktywacja zewnętrznej biblioteki
Biblioteki są przydatne, ale trzeba z nimi uważać, jeżeli możesz wykonać kod samemu zrób to.
Dobra praktyka - import zawsze na początku kodu
Jeśli potrzebujemy jakiejś zewnętrznej (np. znalezionej na www.pypi.org ) możemy ją zainstalować poprzez wykonanie w terminalu:
pip install nazwa_bibilioteki
Moduł Turtle
Służy to rysowania za pomocą kodu. Zawsze na początku trzeba zaimportować go poprzez:
import turtle
Przygotowywanie żółwika
Początek kodu
zolwik = turtle.Turtle
tworzy żółwika i jego przestrzeń
zolwik.speed(5)
określamy z jaką prędkością porusza się żółwik
zolwik.shape("turtle")
Metody
.forward(odległość) - przesuwa żółwia do przodu
.left(kąt) - żółwik skręca w lewo o podany kąt
.right(kąt) - skręca w prawo o podany kąt
.circle(promień) - rysuje okrąg o podanym promieniu
.penup() - żółwik przemieszczając się przestanie zostawiać ślad
.pendown() - ponownie zacznie rysować
Koniec kodu
zolwik.hideturtle()
chowa żółwia
turtle.exitonclick()
powoduje, że bo skończeniu rysowania program od razu się nie zamyka
Dodatek
end=" " - zamienia enter na to co jest podane w " "
for i in range(5):
print(i, end=", ")
przykład użycia
Zamiast wyświetlać każdą liczbę od nowej lini, wyświetli je po przecinku.
Zadanie 1
Przykład a

import turtle
zolwik = turtle.Turtle()
zolwik.speed(1)
zolwik.shape("turtle")
# powyzej nie modyfikuj
dlugosc=0
szerokosc=50
for _ in range(4):
dlugosc+=50
zolwik.forward(50)
for _ in range(2):
zolwik.left(90)
zolwik.forward(dlugosc)
zolwik.left(90)
zolwik.forward(szerokosc)
#ponizej nie modyfikuj
zolwik.hideturtle()
turtle.exitonclick()
Przykład b

import turtle
zolwik = turtle.Turtle()
zolwik.speed(1)
zolwik.shape("turtle")
# powyzej nie modyfikuj
dlugosc=50
for _ in range(8):
dlugosc+=25
for _ in range(4):
zolwik.forward(dlugosc)
zolwik.left(90)
#ponizej nie modyfikuj
zolwik.hideturtle()
turtle.exitonclick()
Zadanie 2
Korzystając z pętli for wyciągnijcie wpisy z czerwca zawierające komunikat “ERROR” (oba warunki muszą być spełnione!).
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ę...."],
]
z polecenia zadania
for lista in logi:
for linia in lista:
wyrazy=linia.split()
data=wyrazy[0]
miesiac=data.split("-")
if miesiac[1]=="06" and wyrazy[1]=="[ERROR]":
print(linia)
opcja 1
for linia in logi:
for wyraz in linia:
if "[ERROR]" in wyraz and "[2025-06" in wyraz:
print(linia)
opcja 2
Zadanie 3
Jak dodatkowe zadanie dla chętnych - 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
zakres = int(input("Podaj maksymalną wartość dla ciągu Fibonacciego: "))
a=0
b=1
while b<zakres:
wynik=a+b
a=b
b=wynik
if wynik<zakres:
print(wynik)