Python - zajęcia 6

Python - zajęcia 6

  • Pętla while

# Zadanie - kwestionariusz

import random
quiz = [
    {
        "pytanie": "Jaki był pierwszy produkt firmy Sony?",
        "odpowiedzi": [
            ("Radio tranzystorowe", 0),
            ("Ryżowy garnek elektryczny", 1),
            ("Telewizor przenośny", 0),
        ],
    },
    {
        "pytanie": "Która firma stworzyła pierwszą mysz komputerową?",
        "odpowiedzi": [
            ("IBM", 0),
            ("Xerox", 1),
            ("Apple", 0),
        ],
    },
    {
        "pytanie": "W którym roku powstał pierwszy e-mail?",
        "odpowiedzi": [
            ("1971", 1),
            ("1981", 0),
            ("1991", 0),
        ],
    },
    {
        "pytanie": "Ile ważył pierwszy dysk twardy firmy IBM z 1956 roku o pojemności 5 MB?",
        "odpowiedzi": [
            ("1 tona", 1),
            ("200 kg", 0),
            ("50 kg", 0),
        ],
    },
    {
        "pytanie": "Który język programowania został stworzony najwcześniej?",
        "odpowiedzi": [
            ("Python", 0),
            ("C", 1),
            ("Java", 0),
        ],
    },
]


# Baza - użyj pętli do wyświetlenia pytań.

# Użyj pętli `for` żeby wyświetlić użytkownikowi pytania i możliwe warianty odpowiedzi.
# prefix = ["a. ", "b. ", "c. "]

# for i, pytania in enumerate(quiz):
#     print(f"{i+1}. {pytania["pytanie"]}")
#     for j, odpowiedzi in enumerate(pytania["odpowiedzi"]):
#         if odpowiedzi[1] > 0:
#             sufix = "🟢"
#         else:
#             sufix = ""
#         print(f"{prefix[j]}{odpowiedzi[0]} {sufix}")


# Krok 1 - dodaj losową kolejność odpowiedzi

# Skorzystaj z biblioteki `random` i  dostępnej w niej funkcji `shuffle` do przemieszania kolejności odpowiedzi. Jeśli masz nr / literkę odpowiedzi dodaną w jej treści  - na razie nie przejmuj się tym. Na tym etapie jeszcze nie liczymy też pkt. - zajmujemy się jedynie wyświetlaniem zawartości.

prefix = ["a. ", "b. ", "c. "]
randomowa_kolejnosc_odpowiedzi = list()

for i, pytania in enumerate(quiz):
    print(f"{i+1}. {pytania["pytanie"]}")
    print((pytania["odpowiedzi"]))
    random.shuffle(pytania["odpowiedzi"])
    print(pytania["odpowiedzi"])
    # /randomowa_kolejnosc_odpowiedzi = random.shuffle(pytania["odpowiedzi"])
    break
    for j, odpowiedzi in enumerate(randomowa_kolejnosc_odpowiedzi):
        if odpowiedzi[1] > 0:
            sufix = "🟢"
        else:
            sufix = ""
        print(f"{prefix[j]}{odpowiedzi[0]} {sufix}")


# Co dalej?

# Dążymy do tego, żeby w pętli obsłużyć też zliczanie punktów. Jakie kłopoty na tym etapie widzę?

# - jeśli pomieszam kolejność odpowiedzi to jak przypisywać to co wpisał użytkownik z punktacją (czyli np. "a" nie będzie już na pierwszej pozycji tylko np. na trzeciej - co z tym zrobić)?
# - co zrobić żeby "pomieszać" też pytania?
# - dobrze by było na początku poprosić użytkownika o imię etc. Jakiej struktury danych do tego moglibyśmy użyć?