Python - struktury danych
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}")