'Quiz z użyciem Python - v.2' 2025/09/04 z.4
Zadanie
Moim zadaniem było wykorzystanie struktur danych python do uporządkowania quizu. do wykorzystania miałam listy, krotki, słownik i zbiór. Struktury miały być zastosowane tak, aby spełnić poniższe kryteria:
- Przechowujemy gdzieś na stałe pytania i odpowiedzi
- pytania nie powtarzają się
- kolejność odpowiedzi jest losowa
- przechowujemy odpowiedzi i punkty w tym samym miejscu/strukturze
- kolejność/przyporządkowanie odpowiedzi i punktów nie może być zmienne
- przechowujemy końcowy wynik użytkownika w osobnej strukturze danych
Podejście do rozwiązania
Aby przekształcić quiz w zorganizowaną i łatwą do zarządzania strukturę, postawiłam na użycie słownika jako głównej struktury danych, a w nim list i krotki.
- Główna struktura danych dla całego quizu powinna być słownikiem. Klucze tego słownika będą unikalnymi pytaniami, co spełnia wymóg "pytania bez powtórzeń". Wartością dla każdego klucza będzie kolejny, zagnieżdżony słownik, który będzie przechowywał wszystkie informacje o danym pytaniu.
- Wewnątrz tego zagnieżdżonego słownika użyłam listy do przechowywania wszystkich wariantów odpowiedzi. Lista jest idealna, ponieważ jej elementy można łatwo modyfikować lub zmieniać ich kolejność (na przykład z użyciem funkcji
random.shuffle().) - Użyłam krotki do przechowywania poprawnej odpowiedzi i liczby punktów. Krotka jest niezmienna, co oznacza, że jej zawartości nie można zmienić po utworzeniu, co jest przydatne do przechowywania stałych danych, takich jak poprawna odpowiedź i punkty. Spełnia to też wymóg, że "kolejność przechowania punktów za odp. i samego wariantu odpowiedzi ma znaczenie". Np. krotka ('A', 1) jasno wskazuje, że poprawna odpowiedź to 'A' i daje 1 punkt.
Taka struktura jest o wiele skalowalna i łatwiejsza do zarządzania niż poprzednia wersja quizu (v.q). Dodanie nowego pytania wymaga jedynie dodania nowej pozycji do słownika, a nie pisania całego bloku kodu od nowa.
Jedyny problem mam taki, że teraz nie wiem jak do końca ułożyć resztę kodu, aby pytania i odpowiedzi prawidłowo wywoływały się z poszczególnych struktur danych 🥲. Ale to może wyklaruje się na kolejnych zajęciach 🤓.
quiz = {
"Które zwierzę jest znane z tego, że potrafi spać stojąc?": {
"odpowiedzi": ["A) Żyrafa", "B) Koń", "C) Słoń"],
"poprawna_odpowiedz": ("B", 1)
},
"Jaki owad jest znany z zapylania kwiatów i produkcji miodu?": {
"odpowiedzi": ["A) Biedronka", "B) Pszczoła", "C) Mrówka"],
"poprawna_odpowiedz": ("B", 1)
},
"Który z wymienionych ptaków nie potrafi latać?": {
"odpowiedzi": ["A) Koliber", "B) Tukan", "C) Pingwin"],
"poprawna_odpowiedz": ("C", 1)
},
"Które zwierzę jest najszybszym ssakiem na świecie?": {
"odpowiedzi": ["A) Lew", "B) Antylopa", "C) Gepard"],
"poprawna_odpowiedz": ("C", 1)
},
"Które zwierzę jest znane ze swojej zdolności do zmiany koloru, aby wtopić się w otoczenie?": {
"odpowiedzi": ["A) Panda", "B) Żaba", "C) Kameleon"],
"poprawna_odpowiedz": ("C", 1)
}
}