Python zajęcia 3 i 4

Python zajęcia 3 i 4
Photo by Mohammad Rahmani / Unsplash

🤖 Decyzje

Pierwszym krokiem zanim podejmiemy jakąś decyzje jest np. dokonanie porównania.

Jakie porównania możemy wykonać?

OperatorZnaczeniePytanie logicznePrzykład
==RównośćCzy x jest równe y?x == y
!=NierównośćCzy x nie jest równe y?x != y
>Większe niżCzy x jest większe od y?x > y
>=Większe lub równeCzy x jest większe lub równe y?x >= y
<Mniejsze niżCzy x jest mniejsze od y?x < y
<=Mniejsze lub równeCzy x jest mniejsze lub równe y?x <= y

🧠 Operatory logiczne

🔗 AND - Zwraca True, jeśli oba warunki są prawdziwe 

🔀  OR - Zwraca True, jeśli co najmniej jeden warunek jest prawdziwy.

🔄 NOT - Odwraca wartość logiczną: True ➝ False, False ➝ True

💡Instrukcja if, elif, else pozwala podejmować decyzje w programie — sprawdza pierwszy warunek, jeśli nie jest spełniony, sprawdza kolejny (elif), a jeśli żaden nie pasuje, wykonuje ostatnią opcję (else)

‼️ jeśli korzystamy tylko z if to każdy warunek będzie wykonany

🔠 upper() → zamienia na wielkie litery

🔡  lower() zamienia na małe litery

🧩 Co robi f przed stringiem?

Pozwala {wstawiać wartości zmiennych} bezpośrednio do tekstu.

🏠 Praca domowa 1

punkty=0
print('''
Oto czas, gdy dymy z kuchennych palenisk wznosiły się ku niebiosom,
a zapach pieczystego i korzennych przypraw wypełniał zamkowe hale!
Witaj, szlachetny wędrowcze!
Jedna jeno odpowiedź w każdym zapytaniu prawdziwą jest.
Kto odpowie błędnie, temu odejmie się pół punktu z dorobku.
Niechaj quiz się rozpocznie!
''')
print(
    '''
Jakie mięso najczęściej pojawiało się na chłopskim stole?
a. Dziczyzna
b. Wieprzowina
c. Mięso drobiowe
''')
odpowiedz1 = input('Wprowadź swoją odpowiedź (a, b, c): ')
if odpowiedz1 == 'b':
    punkty += 1
else:
    punkty -= 0.5
print(
    '''
Które przyprawy były dostępne dla chłopów?
a. Szafran i gałka muszkatołowa
b. Pieprz i cynamon
c. Sól i czosnek
''')
odpowiedz2 = input('Wprowadź swoją odpowiedź (a, b, c): ')
if odpowiedz2 == 'c':
    punkty += 1
else:
    punkty -= 0.5
print("""
Najczęstszy napój chłopów w średniowieczu:
a) Piwo
b) Miód pitny
c) Herbata
""")
odpowiedz3 = input("Wprowadź swoją odpowiedź (a, b, c): ")
if odpowiedz3 =="a":
    punkty+=1
else:
    punkty-=0.5
print("""
Który król Polski słynął z zamiłowania do egzotycznych przypraw, takich jak szafran i cynamon?
a) Jan III Sobieski
b) Zygmunt Stary
c) Zygmunt III Waza
""")
odpowiedz4 = input("Wprowadź swoją odpowiedź (a, b, c): ")
if odpowiedz4 =="c":
    punkty+=1
else:
    punkty-=0.5
print("""
Jaki był popularny sposób konserwacji żywności?
a) Kiszenie
b) Chłodzenie
c) Solenie
""")
odpowiedz5 = input("Wprowadź swoją odpowiedź (a, b, c): ")
if odpowiedz5 =="c":
    punkty+=1
else:
    punkty-=0.5
print("""
Jakie mięso było najczęściej spożywane przez szlachtę?
a) Perliczka
b) Dziczyzna
c) Wołowina
""")
odpowiedz6 = input("Wprowadź swoją odpowiedź (a, b, c): ")
if odpowiedz6 =="b":
    punkty+=1
else:
    punkty-=0.5
print(
"""
Co było głównym źródłem białka w diecie chłopskiej?
a. Rośliny strączkowe
b. Kefir
c. Jajka
"""
)
odpowiedz7 = input("Wprowadź swoją odpowiedź (a, b, c): ")
if odpowiedz7 == "a":
    punkty += 1
else:
    punkty -= 0.5
print(
"""
Jakie owoce były często podawane na stołach szlacheckich?
a. Winogrona i figi
b. Jabłka i gruszki
c. Pomarańcze i cytryny
"""
)
odpowiedz8 = input("Wprowadź swoją odpowiedź (a, b, c): ")
if odpowiedz8 == "a":
    punkty += 1
else:
    punkty -= 0.5
print(
"""
Jakie pieczywo było najczęściej spożywane przez szlachtę?
a. Chleb żytni
b. Chleb owsiany
c. Biały chleb pszenny
"""
)
odpowiedz9 = input("Wprowadź swoją odpowiedź (a, b, c): ")
if odpowiedz9 == "c":
    punkty += 1
else:
    punkty -= 0.5
print(
"""
Który król Polski sprowadził do kraju włoskich kucharzy, aby wzbogacić królewską kuchnię?
a. Kazimierz Wielki
b. Zygmunt Stary
c. Władysław Łokietek
"""
)
odpowiedz10 = input('Wprowadź swoją odpowiedź (a, b, c): ')
if odpowiedz10 == "b":
    punkty += 1
else:
    punkty -= 0.5
print('Twój wynik to:', punkty)
if punkty == 10:
    print('Wielce Czcigodny, Przyprawą Prowadzony, Bohaterze Quizów i Cesarzu Kulinarnej Prawdy! Twoje podniebienie zna granice tylko po to, by je przekraczać!' )
elif punkty == 9:
    print ('Arcymistrzu Kuchennych Tajemnic! Piekarniki mrugają do Ciebie z uznaniem, a lodówki same się otwierają!')
elif punkty == 8:
    print('Pierwszy Chochlohrabio Sosów Gęstych! Chochla w dłoń — niech kuchenne imperium kwitnie!')
elif 6 < punkty < 8:
    print('Saluty dla Rycerza Kuchennego Królestwa Cebuli i Smalcu! Smakowitej służby i niech aromaty będą z Tobą!')
elif 4 < punkty < 6:
    print('Czeladniku Patelni Spalonej Jajecznicy! Niech Twoja umiarkowana ręka w kuchni zbliża się do mistrzostwa!')
else:
    print ('Ostatni Włościaninie Zupy Zbyt Słonej! Niech Twoje mierne umiejętności prowadzą Cię przez smakowe wzgórza i doliny…')

📦 Struktury danych czyli jak przechowujemy dane?

Struktura

Opis

Przykład użycia

List (lista)

uporządkowana, zmienna kolekcja elementów

lista zakupów, wyniki testów

Tuple (krotka)

jak lista, ale niezmienna

współrzędne GPS (x, y)

Set (zbiór)

unikalne elementy, brak kolejności

zbiór tagów, słów kluczowych

Dict (słownik)

para klucz-wartość

baza danych użytkowników: {"Janusz": 25, "Anna": 30}

💌 Listy i Krotki

  • każdy element ma swój indeks
  • oba mogą posiadać duplikaty
  • w obu wypadkach można się przemieszczać (literate) po ich elementach 

ALE

  • listy są modyfikowalne (mutable), a krotki nie
  • listy są jak książki na półce, krotki jak kategorie menu w restauracji
  • w listach, raczej unika się sięgania po elementy umieszczone gdzieś w środku listy, w krotkach, długość jest stała więc częściej sięgamy po elementy znajdujące się głęboko w nich

📋 Listy [list] - nawiasy kwadratowe

moje_ksiazki = ['Hobbit', 'Harry Poter', 'Alicja w Krainie Czarów']

🔒 Krotki (tuple) - nawiasy okrągłe

kategorie_menu = ('przystawki', 'zupy', 'dania głowne', 'desery')

🔢 Indeks to pozycja elementu w kolekcji. W Pythonie indeksowanie zaczyna się od 0!

🔙 Indeksowanie od końca

owoce = ["jabłko", "banan", "gruszka"]
print(owoce[-1])  # "gruszka"

✂️ Slicing – wycinanie fragmentów

liczby = [10, 20, 30, 40, 50]
print(liczby[:3])      # [10, 20, 30] - zatrzymaj się przed indeks nr 3

🧠 Metoda to funkcja "przywiązana" do danego obiektu

Metoda

Opis

Przykład użycia

count(x)

Zwraca liczbę wystąpień elementu x

lista.count("banan")

index(x)

Zwraca indeks pierwszego wystąpienia x

lista.index("jajka")

append(x)

Dodaje x na koniec listy

lista.append("mango")

pop(i)

Usuwa i zwraca element na pozycji i

lista.pop(1) - jak nic nie ma to ostatnie znika

sort()

Sortuje listę rosnąco

lista.sort()

copy()

Tworzy kopię listy

nowa_lista = lista.copy()

📏 Funkcja len() zwraca liczbę elementów w obiekcie

📘 Słownik w Pythonie to struktura danych, która przechowuje informacje w formie par: klucz → wartość

  • Klucze są niepowtarzalne i muszą być typami niemodyfikowalnymi 
  • Wartości mogą być dowolnymi obiektami — liczby, teksty, listy, inne słowniki
slownik = {"klucz1": "wartość1", "klucz2": "wartość2"}

🧮 Zbiory (ang. sets) to struktura danych, która przechowuje unikalne, nieuporządkowane elementy i nie posiada duplikatów wartości

  • Są nieuporządkowane — brak gwarancji kolejności elementów —> nie mają indeksów ‼️
literki = {"a", "b", "c", "a"}  # "a" pojawi się tylko raz

🏠Praca domowa 2

kwestionariusz= {
    "Które przyprawy były dostępne dla chłopów?": [
        ("Szafran i gałka muszkatołowa", -0,5),
        ("Pieprz i cynamon", -0.5),
        ("Sól i czosnek", 1)
    ],
    "Najczęstszy napój chłopów w średniowieczu:": [
        ("Piwo", 1),
        ("Miód pitny", -0,5),
        ("Herbata", -0,5)
    ],
    "Jaki był popularny sposób konserwacji żywności?": [
        ("Kiszenie", -0,5),
        ("Chłodzenie", -0.5),
        ("Solenie", 1)
    ]
}


pytanie = input("Podaj pytanie: ")
odp1 = input("Odpowiedź 1: ")
pkt1 = float(input("Ile punktów za odp1? "))
odp2 = input("Odpowiedź 2: ")
pkt2 = float(input("Ile punktów za odp2? "))
odp3 = input("Odpowiedź 3: ")
pkt3 = float(input("Ile punktów za odp3? "))
kwestionariusz[pytanie] = [(odp1, pkt1), (odp2, pkt2), (odp3, pkt2)]
print(kwestionariusz)