# Zadania z zajęć – Pętla for i moduł turtle
Zadanie 3 – Ciąg Fibonacciego
Celem było stworzenie programu obliczającego kolejne liczby ciągu Fibonacciego, zaczynając od 0 i kończąc na pozycji podanej przez użytkownika.
Podejście 1 – bez listy, tylko zmienne
W tym podejściu program wypisuje wartości na bieżąco, bez ich przechowywania.
n = int(input("Podaj maksymalną pozycję ciągu Fibonacciego: "))
a, b = 0, 1
for i in range(n):
print(a, end=" ")
a, b = b, a + b
Podejście 2 – z listą przechowującą wynik
Tutaj liczby są zapisywane w liście i dopiero na końcu wypisywane.
n = int(input("Podaj maksymalną pozycję ciągu Fibonacciego: "))
# Inicjalizacja pierwszych wartości
fib = [0, 1]
# Obliczanie kolejnych wartości aż do pozycji n
for i in range(2, n):
next_value = fib[i-1] + fib[i-2]
fib.append(next_value)
# Wyświetlenie wyników
print("Ciąg Fibonacciego do pozycji", n, "to:")
print(fib[:n])
Zadanie 2 – Filtrowanie logów z czerwca
Zadanie polegało na przefiltrowaniu logów w taki sposób, aby znaleźć wpisy zawierające:
- datę z czerwca 2025 (
2025-06) - komunikat
[ERROR]
Przykładowy kod rozwiązania:
["[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ę...."],
]
# Filtrowanie logów z czerwca i komunikatem ERROR
czerwcowe_error = []
for wpis in logi:
tekst = wpis[0]
if "2025-06" in tekst and "[ERROR]" in tekst:
czerwcowe_error.append(tekst)
# Wyświetlenie wyników
for linia in czerwcowe_error:
print(linia)
Zadanie 1 – Rysowanie przy użyciu turtle
Zadanie polegało na odtworzeniu dwóch rysunków geometrycznych za pomocą modułu turtle.
Rysunek 1 – Rosnące słupki
słupki mają jednakową szerokość
każdy kolejny słupek jest wyższy
żółw po narysowaniu słupka przesuwa się w prawo
turtle.speed("fast")
turtle.penup()
turtle.goto(-200, -100)
turtle.pendown()
szerokosc = 40
wysokosc_start = 40
liczba_slupkow = 5
for i in range(liczba_slupkow):
wysokosc = wysokosc_start * (i + 1)
for _ in range(2):
turtle.forward(szerokosc)
turtle.left(90)
turtle.forward(wysokosc)
turtle.left(90)
turtle.forward(szerokosc)
turtle.hideturtle()
turtle.done()
##Rysunek 2 – Kwadraty startujące z jednego punktu
wszystkie kwadraty zaczynają się z tego samego punktu
każdy ma coraz większy bok
kolejne kwadraty nakładają się na siebie
```import turtle
turtle.speed("fastest")
turtle.penup()
turtle.goto(-100, -100)
turtle.pendown()
rozmiar_poczatkowy = 40
liczba_kwadratow = 8
for i in range(liczba_kwadratow):
bok = rozmiar_poczatkowy + (i * 10)
turtle.penup()
turtle.goto(-100, -100)
turtle.pendown()
for _ in range(4):
turtle.forward(bok)
turtle.left(90)
turtle.hideturtle()
turtle.done()