Python - zajęcia 5
Instalowanie bibliotek
pip3 install nazwa_moduluNarzędzia dla zawodowców w IT: Poetry i UV
- UV jest pomocne, kiedy robimy 2 aplikacje i potrzebne są 2 różne wersje tej samej biblioteki
Nie jest dobrze korzystać z bibliotek w przypadku prostych problemów, czemu?
- żeby się nie rozleniwić
- aktualizacja biblioteki może wiązać się z dużymi zmianami i program może nie zadziałać
- left pad incident.
Co było źle z kwestionariuszem?
- kod po każdym pytaniu się powtarzał - po to mamy pętle
quiz = [
{
"tresc": "tresc pytania",
"odpowiedzi": [
("odp1", 1),
("odp2", 0),
("odp3", 0),
],
}
]
Rodzaje pętli
- for
- while
Dzisiaj o pętli for:
- preferowany rodzaj pętli w Pythonie
- "wykonaj coś tyle razy, ile jest elementów w"
for element in sekwencja:
print("coś, co ma się powtórzyć")brudnopis:
# zwierzaki = ["pies", "kot", "chomik", "rybki"]
# for zwierzak in zwierzaki:
# print(zwierzak)
# print("***********")
# python sprawdza czy nasza sekwencja ma jeszcze jakies elementy
# tak, sa elementy
# bierzemy pierwszy "pies" i przypisujemy do zmiennej o nazwie zwierzak
# drukujemy zmienną zwierzak (pies)
# python sprawdza czy nasza sekwencja ma jeszcze jakies elementy
# tak, sa elementy
# bierzemy drugi "kot" i przypisujemy do zmiennej o nazwie zwierzak
# drukujemy zmienną zwierzak (kot)
# python sprawdza czy nasza sekwencja ma jeszcze jakies elementy
# tak, sa elementy
# bierzemy trzeci "chomik" i przypisujemy do zmiennej o nazwie zwierzak
# drukujemy zmienną zwierzak (chomik)
# python sprawdza czy nasza sekwencja ma jeszcze jakies elementy
# tak, sa elementy
# bierzemy czwarty "rybki" i przypisujemy do zmiennej o nazwie zwierzak
# drukujemy zmienną zwierzak (rybki)
# python sprawdza czy nasza sekwencja ma jeszcze jakies elementy
# nie - wychodzimy z pętli
for litera in "Robisz.to":
print(litera)
# # jak mozemy zrobic odliczanie do np. 100 z pomocą range?
# na co trzeba uważać?
# # jak zrobić odliczanie w dół?
# # range(start, koniec, krok)
# # wyswietl kolejne elementy listy, nastepnie komunikat o zakonczeniu
# moja_lista = [1, 2, 3, 4, 5]
# # wyswietl klucze slownika
# moj_slownik = {"a": 1, "b": 2, "c": 3}
# # Jak jeszcze mozemy sie przemieszczac po slowniku?
# # Dobra praktyka - "savoir vivre"
# # moja_lista = [1,2,3,4]
# # for _ in moja_lista: # dobra praktyka
# # print("hello!") # _ gdy nie korzystam z wartosci
# # czy to jak nazwiemy zmienna uzyta do "przemieszczania sie"
# # ma poza tym jakies znaczenie?
# # ile elementow ma ponizsza lista?
# # wyswietl jej poszczegolne elementy
# moja_lista = ["ala", 1, "kot", 2.38, (1, "chomik")]
# # wyswietl poszczegolne litery w słowie "Robisz.to"
# # co wyswietli ponizszy kod (jaki zestaw liczb)?
# for i in range(10):
# print(i)
# # wyswietl 10 razy słowo "Hej!"
# # wyswietl slowo "Hej!" tyle razy ile zażyczy sobie użytkownik
# # jak z pomoca petli zrobic sumowanie liczb z jakiegos zakresu (np. 0-5)
# # jak z tego zakresu policzyc sume jedynie liczb nieparzystych?
# # a jak policzyc silnie?
# # Jak wykorzystać metodę .items() do wyświetlenia kluczy i wartości
# # ze słownika?
# moj_slownik = {"a": 1, "b": 2, "c": 3}
# # Jaka wartość będzie przechowywana pod zmienną a
# # pod koniec działania programu?
# moja_lista = [2, 3, 4]
# a = 1
# print(f"Zmienna a ma teraz wartość {a}")
# for i in moja_lista:
# a *= i
# print(f"Zmienna a ma teraz wartość {a}")
# print(f"Zmienna a ma teraz wartość {a}")
# # A jak będzie w tym wypadku?
# moja_lista = [2, 3, 4]
# for i in moja_lista:
# a = 1
# print(f"Zmienna a przed mnożeniem: {a}")
# a *= i
# print(f"Zmienna a ma teraz wartość: {a}")
# # do czego słuze atrybut end?
# for i in range(5):
# print(i, end=", ")
# # wyświetl poszczególne znaki z zdania "Ala ma kota."
# # Przejdź pętlą for po poniższych zdaniach. Sprawdź czy znajduje się w nich słowo "relaks"
# # - jeśli tak to wyświetl komunikat "Znaleziono" i pokaż też to zdanie.
# # P.S. Nie ręczę za treść - wygenerowane przez AI ;)
# zdania = [
# "Lubię spacerować po lesie w ciepłe dni.",
# "Kawa rano dodaje mi energii do działania.",
# "Książki rozwijają wyobraźnię i wiedzę człowieka.",
# "Wakacje nad morzem to najlepszy czas relaksu.",
# "Muzyka pomaga mi się skupić i odpocząć.",
# "Pies biega radośnie po zielonym podwórku.",
# "W pracy ważna jest dobra komunikacja z innymi.",
# "Gotowanie to moja największa pasja na co dzień.",
# "Uwielbiam oglądać zachody słońca nad jeziorem.",
# "Przyjaciele zawsze wspierają mnie w trudnych chwilach.",
# ]
# # korzystając z powyższej listy zdań - policz łączną ilość wystąpień litery "a"
# # wyświetl poniższą liste w odwrotnej kolejności
# liczby = [1, 2, 3, 4]
# # czasami przemieszczając się po elementach list/ krotki ("iterując") byłoby super dostać też indeks elementu.
# # Aby nie bawić się w wprowadzanie dodatkowej zmiennej w której liczylibyśmy indeks można posłużyć się
# # funkcja enumerate
# for idx, liczba in enumerate(liczby):
# print(f"Indeks: {idx}, Wartość: {liczba}")
.items zamienia słownik na listę krotek
Żółw - biblioteka turtle
Fajny bajer do poćwiczenia pętli for.
Zadanie 1a

import turtle
zolwik = turtle.Turtle() # stworz obiekt rysujacego zolwia pod zmienna zolwik
zolwik.speed(5) # ustaw szybkosc zolwia wbudowana metoda speed
zolwik.shape("turtle") # uzyj metody shape do ustawienia wygladu kursora / zolwia
zolwik.pensize(3)
wysokosc_slupka=50
szerokosc_slupka=40
liczba_slupkow=4
zolwik.left(90)
for slup in range(liczba_slupkow):
for boki in range(2):
zolwik.forward((slup+1)*wysokosc_slupka)
zolwik.right(90)
zolwik.forward(szerokosc_slupka)
zolwik.right(90)
zolwik.left(90)
zolwik.penup()
zolwik.back(szerokosc_slupka)
zolwik.right(90)
zolwik.pendown()
turtle.exitonclick()
Zadanie 1b

import turtle
zolwik = turtle.Turtle() # stworz obiekt rysujacego zolwia pod zmienna zolwik
zolwik.speed(5) # ustaw szybkosc zolwia wbudowana metoda speed
zolwik.shape("turtle") # uzyj metody shape do ustawienia wygladu kursora / zolwia
zolwik.pensize(3)
dlugosc_boku_min=50
liczba_kwadratow=8
roznica=10
zolwik.left(90)
for _ in range(liczba_kwadratow):
for costam in range(4):
zolwik.forward(dlugosc_boku_min+_*roznica)
zolwik.right(90)
turtle.exitonclick()Zadanie 2
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ę...."],
]
for wiadomosc in logi:
if "-06-" in wiadomosc[0] and "ERROR" in wiadomosc[0]:
print("Errory w czerwcu:")
print(wiadomosc)Linki:
pypi.org
astral.sh