Python - struktury danych

Python - struktury danych
Photo by Andrey Metelev / Unsplash

Zajęcia 16-10-2025

Quiz z wykorzystaniem struktur danych

Zastosowano strukturę do zakodowania pytań:

quiz = [
{
"pytanie": "tresc pytania",
"odpowiedz_punkty": [("odp a", ilosc punktow), ("odp b", ilosc punktow), ("odp c", ilosc punktow)]
# odpowiedz : ilosc punktow - ujemne punkty gdy zla odpowidz
}
]

zastosowawanie listy krotek to trzymania pary odpowiedz i liczba punktow za te odpowiedz umozliwia według mnie dośc sprawne porówanie z odpowiedża podaną przez użytkownika

PRZYKŁADOWY KOD


import random

quiz = [
    {
    "pytanie": "Która z poniższych struktur danych jest  MODYFIKOWALNA (mutable) w Pythonie?",
    "odpowiedz_punkty": [("lista", 1), ("krotka", -1), ("set", 1)] #   odpowiedz : ilosc punktow - ujemne punkty gdy zla odpowidz
    },
    {
    "pytanie": "Która z poniższych struktur danych jest  NIEMODYFIKOWALNA (mutable) w Pythonie?",
    "odpowiedz_punkty": [("lista", -1), ("krotka", 1), ("set", -1)]
    },
    {
    "pytanie": "Które struktury danych pozwalają na duplikaty?",
    "odpowiedz_punkty": [("lista", 1), ("krotka", 1), ("set", -1)]
    },
    {
    "pytanie": "Które metody istnieją dla list w Pythonie??",
    "odpowiedz_punkty": [("append", 1), ("push", -1), ("extend", 1)]
    }
]

ilosc_pytan_w_baza = len(quiz)
ile_pytan_w_quiz = 3
pytania_wybrane_do_quiz = random.sample(range(ilosc_pytan_w_baza), ile_pytan_w_quiz)
#print(pytania_wybrane_do_quiz)
punkty_uzytkownika = 0


for i in pytania_wybrane_do_quiz:
    odpowiedzi_do_pytania = quiz[i]["odpowiedz_punkty"]
    print(odpowiedzi_do_pytania)
    # Zastosowanie losowej kolejności odpowiedzi"
    random.shuffle(odpowiedzi_do_pytania)

    print(quiz[i]["pytanie"])

    for j in range (0, ile_pytan_w_quiz):
        print(f"{j+1}. {odpowiedzi_do_pytania[j][0]}")

    odpowiedz_user = input("Podaj numery odpowiedzi po przecinku: ")
    odpowiedz_user_list = [int(x.strip()) for x in odpowiedz_user.split(',')]
    for k in odpowiedz_user_list:
        punkty_uzytkownika += odpowiedzi_do_pytania[k-1][1]

print(f"Zdobyłeś : {punkty_uzytkownika}")