Wyświetlanie pytań w kwestionariuszu - KR
ankieta = [
(
"Która z poniższych metod zabezpieczenia 2FA uznawana jest za najbezpieczniejszą?",
[
("SMS", 0),
("kod z aplikacji (TOTP)", 0),
("klucz sprzętowy", 1),
],
),
(
"Czym jest światło?",
[
("falą", 1),
("cząstką", 1),
("grzybem", 0),
],
),
(
"NGS to?",
[
("Nowa guma smakowa", 0),
("Niezbyt głodny smok", 0),
("Sekwencjonowanie nowej generacji", 1),
],
),
]
Przykładowe pytania kwestionariusza
- Wyświetlanie pytań i odpowiedzi z oczekiwaniem na odpowiedź użytkownika
for pytanie in ankieta:
print(pytanie[0])
for odpowiedz in pytanie[1]:
print(odpowiedz[0])
odpowiedz_uzytkownika = input("Wpisz poprawną odpowiedź: ")
Sięga po pierwszy element pytania (czyli tekst samego pytania), a dla dalszego elementu pytania (odpowiedzi) drukuje znowu pierwsze elementy (tekst odpowiedzi bez punktacji). Pauzuje po wyświetleniu pierwszego pytania wraz z odpowiedziami w oczekiwaniu na odpowiedź użytkownika.
imie = input("Wprowadź imię: ")
punktacja = 0
for pytanie in ankieta:
print(pytanie[0])
print()
i = 0
for odpowiedz in pytanie[1]:
print(f"{i}. {odpowiedz[0]}")
i += 1
odpowiedz_uzytkownika = input("Wpisz numer odpowiadający poprawnej odpowiedzi: ")
while odpowiedz_uzytkownika not in ("0", "1", "2"):
print("Niespodziewana forma odpowiedzi, zastosuj się do instrukcji.")
odpowiedz_uzytkownika = input("Wpisz poprawną odpowiedź. Do wyboru masz kolejno: 0, 1 lub 2 - ")
zdobyte_punkty = pytanie[1][int(odpowiedz_uzytkownika)][1]
punktacja += zdobyte_punkty
print()
print("Twój wynik końcowy to:")
print(f"{punktacja} pkt")
if punktacja >0:
print("Gratulacje!")
wyniki = {imie: punktacja}
Powyższy kod pozwala na wprowadzanie odpowiedzi przez użytkownika, sprawdza czy podana odpowiedź może być indeksem odpowiedzi do wywołania punktacji, zlicza wyniki drukuje na koniec uzyskaną liczbę punktów.
Jedyny problem tego kodu, to że nie wiem jak honorować odpowiedzi wielokrotnego wyboru...