Rozbudowany Kwestionariusz

Rozbudowałam Kwestionariusz o możliwość wyboru kategorii (Zwierzęta, Geografia, Programowanie) a następnie poziomu trudności (łatwy, średni, trudny). Przez dodanie tych funkcjonalności musiałam nieco przebudować cały kod dlatego mocniej "odstaje" od poprzedniego. Zachowałam funkcjonalność mieszania pytań i odpowiedzi. Przy tym, po każdej odpowiedzi - pokazuje czy odpowiedź była poprawna czy nie, oraz jakie mamy saldo punktów. Na końcu oblicza wynik oraz zwraca go w procentach - i na tej podstawie zwraca komunikat użytkownikowi.

Kwestionariusz:

import random

class Quiz:
    def __init__(self):
        self.punkty = 0
        self.imie = ""
        
        # Baza pytań - teraz bogatsza i lepiej zorganizowana
        self.baza_pytan = {
        # baza pytań w sekcji "Baza Pytań" by nie robić zamieszania
        }
    def rozpocznij(self):
        print("Witaj w moim Quizzie wiedzy ogólnej!")
        print("Quiz jest podzielony na poziomy trudności oraz kategorie")
        print("Oto zasady:")
        print("\u2022 Za poprawną odpowiedź +1 punkt")
        print("\u2022 Za błędną odpowiedź -0.5 punktu\n")

        self.imie = input("Podaj swoje imię: ").strip() or "Gracz"

        # Wybór kategorii
        print("\nWybierz jedną lub więcej kategorii:")
        kategorie = list(self.baza_pytan.keys()) # pobranie nazw kategorii (wszystkie klucze ze słownika)
        for i, kategoria in enumerate(kategorie, 1): # połączenie indeksów (począwszy od 1) i elementów do każdej kategorii
            print(f"{i}.{kategoria}")
        
        wybrane_kategorie = []
        while not wybrane_kategorie:
            wybrane = input("\nWpisz numery kategorii (np. '1 2 3'): ")
            if wybrane.lower() == 'wszystkie':
                wybrane_kategorie = kategorie.copy()
            else:
                try:
                    wybrane_kategorie = [kategorie[int(i)-1] for i in wybrane.split()]
                except:
                    print("Niepoprawny wybór. Wybierz spośród numerów: 1, 2, 3.")
        
        # wybór poziomu trudności
        print("\nWybierz poziom trudności:")
        print("1. Łatwy")
        print("2. Średni")
        print("3. Trudny")
        poziom = ""
        while poziom not in ["łatwe", "średnie", "trudne"]:
            wybrane = input("Wybierz poziom trudności (1-3): ").strip()
            if wybrane == "1":
                poziom = "łatwe"
            elif wybrane == "2":
                poziom = "średnie"
            elif wybrane == "3":
                poziom = "trudne"
            else:
                "Nieprawidłowy wybór. Wybierz 1, 2 lub 3."

        #pytania:
        pytania = []
        for kategoria in wybrane_kategorie:
            pytania.extend(self.baza_pytan[kategoria][poziom])

        random.shuffle(pytania)
        liczba_pytan = min(10, len(pytania)) #ucina do 10 pytań, niezależnie od ilości wybranych kategorii

        print(f"\nStart Quizu! ({', '.join(wybrane_kategorie)} - poziom {poziom})")

        for i, pytanie in enumerate(pytania[:liczba_pytan],1):
            print(f"\n{i}. {pytanie['pytanie']}\n") # treść pytania z całego słownika
            
            #mieszanie odpowiedzi
            odpowiedzi = pytanie['odpowiedzi'].copy()
            random.shuffle(odpowiedzi)

            poprawna_odp = pytanie['odpowiedzi'][pytanie['poprawna']]
            poprawna_odp_index = odpowiedzi.index(poprawna_odp)
            
            for j, odp in enumerate(odpowiedzi,1):
                print(f"{j}. {odp}") # lista stringów
                #return odpowiedzi - źle

            
            wybor = input("\nPodaj odpowiedź (1-3): ")
            while wybor not in ["1", "2", "3"]:
                wybor = input("Niepoprawny wybór odpowiedzi. Wybierz 1, 2 lub 3: ")
            if int(wybor)-1 == poprawna_odp_index:
                self.punkty += 1
                print("Poprawna odpowiedź.")
            else:
                self.punkty -= 0.5
                print(f"Błędna odpowiedź. Poprawna odpowiedź to: {poprawna_odp}")
            print(f"Wynik: {self.punkty} pkt.")

        # koniec quizu
        wynik_procent = (self.punkty/liczba_pytan) * 100
        print(f"{self.imie}, wynik: {self.punkty} pkt = {wynik_procent} %")
        if wynik_procent == 100:
            print("Brawo! Zdobyłeś maksymalną ilość punktów!🥇")
        elif wynik_procent >=80:
            print("Świetnie Ci poszło! Prawie bezbłędnie!🥈")
        elif wynik_procent >= 60:
            print("Jest dobrze ale mogłoby być lepiej...")
        elif wynik_procent >= 40:
            print("Otrzymałeś przeciętny wynik. Czas na powtórkę!")
        elif wynik_procent >= 20:
            print("Naprawdę kiepsko...")
        else:
            print("Katastrofa. Chyba nie jesteś dobrym strzelcem...")

quiz = Quiz()
quiz.rozpocznij()

Baza Pytań:

# Baza pytań - teraz bogatsza i lepiej zorganizowana
self.baza_pytan = {
    "Zwierzęta": {
        "łatwe": [
            {
                "pytanie": "Które zwierzę jest najszybszym lądowym ssakiem?",
                "odpowiedzi": ["Antylopa", "Gepard", "Struś"],
                "poprawna": 1
            },
            {
                "pytanie": "Jakie zwierzę jest znane z tego, że potrafi wytwarzać jedwab?",
                "odpowiedzi": ["Pająk", "Motyl", "Gąsienica jedwabnika"],
                "poprawna": 2
            },
            {
                "pytanie": "Które zwierzę ma największą ilość zębów?",
                "odpowiedzi": ["Krokodyl", "Rekin", "Wieloryb"],
                "poprawna": 0
            },
            {
                "pytanie": "Które zwierzę ma skrzela?",
                "odpowiedzi": ["Kos", "Słowik", "Foka"],
                "poprawna": 0
            },
            {
                "pytanie": "Który ptak nie potrafi latać, ale jest jednym z najszybszych biegaczy?",
                "odpowiedzi": ["Struś afrykański", "Nandu południowoamerykański", "Emu australijski"],
                "poprawna": 0
            },
            {
                "pytanie": "Które zwierzę posiada najtwardszą skorupę wśród zwierząt lądowych?",
                "odpowiedzi": ["Żółw pustynny", "Krab kokosowy", "Żółw morski"],
                "poprawna": 0
            },
            {
                "pytanie": "Jakie zwierzę jest znane z tego, że potrafi wykrywać trzęsienia ziemi?",
                "odpowiedzi": ["Pies domowy", "Słoń afrykański", "Kret europejski"],
                "poprawna": 1
            },
            {
                "pytanie": "Które zwierzę potrafi odgryzać swoje ogony, by uciec drapieżnikowi?",
                "odpowiedzi": ["Wąż zbożowy", "Jaszczurka zielona", "Salamandra plamista"],
                "poprawna": 1
            }
        ],

        "średnie": [
            {
                "pytanie": "Które zwierzę ma największe oczy spośród ssaków?",
                "odpowiedzi": ["Sowa śnieżna", "Szakal pręgowany", "Słoń afrykański"],
                "poprawna": 1
            },
            {
                "pytanie": "Które zwierzę potrafi przeżyć hibernację przez kilka miesięcy, zwalniając całkowicie swoje funkcje życiowe?",
                "odpowiedzi": ["Wąż zbożowy", "Niedźwiedź", "Świstak"],
                "poprawna": 2
            },
            {
                "pytanie": "Które zwierzę jest znane z bardzo długiej żywotności, przekraczającej 100 lat?",
                "odpowiedzi": ["Papuga kakadu", "Rekin wielorybi", "Żółw olbrzymi z Galapagos"],
                "poprawna": 2
            },
            {
                "pytanie": "Jaki gatunek zwierzęcia ma największe serce w stosunku do masy ciała?",
                "odpowiedzi": ["Mysz polna", "Koliber", "Kot"],
                "poprawna": 0
            },
            {
               "pytanie": "Które zwierzę ma język dłuższy niż całe jego ciało?",
               "odpowiedzi": ["Żaba drzewna", "Mrówkojad", "Kameleon"],
               "poprawna": 1 
            },
            {
                "pytanie": "Które zwierzę wytwarza najbardziej trujący jad spośród ssaków?",
                "odpowiedzi": ["Kret ziemny", "Kolczatka australijska", "Dziobak"],
                "poprawna": 2
            },
            {
                "pytanie": "Które zwierzę słynie z najdłuższej migracji wśród ptaków?",
                "odpowiedzi": ["Jaskółka", "Bocian biały", "Albatros wędrowny"],
                "poprawna": 0
            },
            {
                "pytanie": "Które zwierzę jest znane z tego, że potrafi widzieć ultrafioletowe światło, niewidoczne dla ludzi?",
                "odpowiedzi": ["Nietoperz", "Pies", "Motyl"],
                "poprawna": 2
            }
        ],

        "trudne": [
            {
                "pytanie": "Które zwierzę ma największe oczy w stosunku do wielkości ciała?",
                "odpowiedzi": ["Humbak", "Kałamarnica olbrzymia", "Kiwaczek leśny"],
                "poprawna": 1
            },
            {
                "pytanie": "Jakie zwierzę jest znane z najdłuższego okresu snu (hibernacji) bez przerwy, trwającego nawet do 7 lat?",
                "odpowiedzi": ["Świstak górski", "Żaba Wooda", "Ślimak z gatunku Melanopsis"],
                "poprawna": 1
            },
            {
                "pytanie": "Jakie zwierzę posiada największą różnorodność chromosomów (liczba chromosomów u jednego gatunku)?",
                "odpowiedzi": ["Mrówka Saharaensis", "Człowiek (Homo sapiens)", "Węgorz elektryczny"],
                "poprawna": 0
            },
            {
                "pytanie": "Które zwierzę ma najdłuższą żywotność znaną wśród kręgowców?",
                "odpowiedzi": ["Rekin grenlandzki", "Żółw olbrzymi z Galapagos", "Wieloryb grenlandzki"],
                "poprawna": 0
            },
            {
                "pytanie": "Które zwierzę jest jedynym znanym gatunkiem zdolnym do regeneracji całkowicie utraconych kończyn?",
                "odpowiedzi": ["Gekon", "Kameleon zwyczajny", "Salamandra plamista"],
                "poprawna": 0
            },
            {
                "pytanie": "Które zwierzę potrafi zmieniać kolor skóry najszybciej?",
                "odpowiedzi": ["Kameleon jemeński", "Ośmiornica zwyczajna", "Płaszczka"],
                "poprawna": 1
            },
            {
                "pytanie": "Które zwierzę jest najbardziej jadowitym wężem na świecie?",
                "odpowiedzi": ["Mamba czarna", "Kobra królewska", "Tajpan pustynny"],
                "poprawna": 2
            },
            {
                "pytanie": "Które zwierzę posiada najsilniejszy zmierzony uścisk szczęki na świecie?",
                "odpowiedzi": ["Lew afrykański", "Orka (wieloryb zabójca)", "Krokodyl nilowy"],
                "poprawna": 2
            }
        ]
    },
    "Geografia": {
        "łatwe": [
            {
                "pytanie": "Które z tych miast jest stolicą Australii?",
                "odpowiedzi": ["Sydney", "Canberra", "Melbourne"],
                "poprawna": 1
            },
            {
                "pytanie": "Jakie morze leży pomiędzy Włochami a Chorwacją?",
                "odpowiedzi": ["Morze Adriatyckie", "Morze Jońskie", "Morze Egejskie"],
                "poprawna": 0
            },
            {
                "pytanie": "Który kontynent jest najmniejszy pod względem powierzchni?",
                "odpowiedzi": ["Australia", "Antarktyda", "Ameryka Południowa"],
                "poprawna": 0
            },
            {
                "pytanie": "W jakim kraju leży piramida Cheopsa?",
                "odpowiedzi": ["Egipt", "Sudan", "Libia"],
                "poprawna": 0
            },
            {
                "pytanie": "Jakie państwo ma największą powierzchnię na świecie?",
                "odpowiedzi": ["Stany Zjednoczone", "Rosja", "Chiny"],
                "poprawna": 1
            },
            {
                "pytanie": "Jak nazywa się najdłuższa rzeka w Polsce?",
                "odpowiedzi": ["Wisła", "Warta", "Odra"],
                "poprawna": 0
            },
            {
                "pytanie": "Które państwo leży na Półwyspie Iberyjskim?",
                "odpowiedzi": ["Hiszpania", "Włochy", "Grecja"],
                "poprawna": 0
            },
            {
                "pytanie": "Które miasto jest stolicą Kanady?",
                "odpowiedzi": ["Toronto", "Vancouver", "Ottawa"],
                "poprawna": 2
            }
        ],
        "średnie": [
            {
                "pytanie": "Jakie jest najwyżej położone stale zamieszkane miasto na świecie?",
                "odpowiedzi": ["La Rinconada – Peru", "Lhasa - Tybet", "El Ato - Boliwia"],
                "poprawna": 0
            },
            {
                "pytanie": "W którym kraju znajduje się najwięcej jezior na świecie?",
                "odpowiedzi": ["Kanada", "Rosja", "Stany Zjednoczone"],
                "poprawna": 0
            },
            {
                "pytanie": "Jak nazywa się największa wyspa świata, która nie jest kontynentem?",
                "odpowiedzi": ["Nowa Gwinea", "Grenlandia", "Australia"],
                "poprawna": 1
            },
            {
                "pytanie": "Która rzeka jest najdłuższa w Europie?",
                "odpowiedzi": ["Dniepr", "Dunaj", "Wołga"],
                "poprawna": 2
            },
            {
                "pytanie": "W jakim kraju znajduje się największy wulkan świata (Mauna Loa)?",
                "odpowiedzi": ["Indonezja", "Stany Zjednoczone (Hawaje)", "Papua-Nowa Gwinea"],
                "poprawna": 1
            },
            {
                "pytanie": "Jakie jest najwyższe pasmo górskie w Afryce?",
                "odpowiedzi": ["Góry Kilimandżaro", "Góry Smocze", "Góry Atlas"],
                "poprawna": 0
            },
            {
                "pytanie": "Które z państw leży jednocześnie na dwóch kontynentach, ale cała jego stolica znajduje się po stronie azjatyckiej?",
                "odpowiedzi": ["Turcja", "Rosja", "Egipt"],
                "poprawna": 0 # innym państwem który spełnia ten warunek jest Kazachstan (Astana/Nur-Sułtan)
            },
            {
                "pytanie": "Na jakim kontynencie leży jezioro Bajkał?",
                "odpowiedzi": ["Azja", "Europa", "Ameryka Południowa"],
                "poprawna": 0
            }
        ],
        "trudne": [
            {
                "pytanie": "Które jezioro jest najstarsze na świecie?",
                "odpowiedzi": ["Jezioro Bajkał", "Jezioro Tanganika", "Jezioro Wiktorii"],
                "poprawna": 0
            },
            {
                "pytanie": "Jaka jest największa depresja (najniżej położony punkt) na lądzie poza obszarem mórz i oceanów?",
                "odpowiedzi": ["Dolina Jordanu", "Dolina Śmierci", "Basen Turfa"],
                "poprawna": 2
            },
            {
                "pytanie": "Która stolica jest położona na największej wysokości nad poziomem morzaw?",
                "odpowiedzi": ["La Paz (Boliwia)", "Quito (Ekwador)", "Thimphu (Bhutan)"],
                "poprawna": 0
            },
            {
                "pytanie": "Jaki jest oficjalny najwyższy szczyt Antarktydy i jaka jest jego wysokość?",
                "odpowiedzi": ["Mount Vinson – 4 892 m",
                                "Mount Erebus – 3 794 m", 
                                "Mount Sidley – 4 285 m"],
                "poprawna": 0
            },
            {
                "pytanie": "Które państwo ma najwięcej wysp na świecie?",
                "odpowiedzi": ["Szwecja", "Chiny", "Stany Zjednoczone"],
                "poprawna": 0 
            },
            {
                "pytanie": "Jaki jest najdłuższy na świecie system jaskiń?",
                "odpowiedzi": ["Mammoth Cave – USA", "Sistema Sac Actun – Meksyk", "Krubera - Gruzja"],
                "poprawna": 0
            },
            {
                "pytanie": "W którym kraju znajduje się najwyższy na świecie wodospad?",
                "odpowiedzi": ["Wenezuela", "Zambia", "Norwegia"],
                "poprawna": 0
            },
            {
                "pytanie": "Które morze ma największą zasolenie?",
                "odpowiedzi": ["Morze Martwe", "Morze Czerwone", "Morze Karaibskie"],
                "poprawna": 0
            }
        ]
    },
    "Programowanie": {
        "łatwe": [
            {
                "pytanie": "Co oznacza skrót IDE w programowaniu?",
                "odpowiedzi": ["Integrated Development Environment",
                                "Internal Data Execution",
                                "Internet Data Exchange"],
                "poprawna": 0
            },
            {
                "pytanie": "Jaką instrukcję używamy, by wypisać tekst na ekran w Pythonie?",
                "odpowiedzi": ["print()",
                                "write()",
                                "output()"],
                "poprawna": 0
            },
            {
                "pytanie": "Jakiego znaku używa się do komentowania pojedynczej linii w Pythonie?",
                "odpowiedzi": ["#", "//", "/*"],
                "poprawna": 0
            },
            {
                "pytanie": "Co oznacza pojęcie „syntax error”?",
                "odpowiedzi": ["Błąd w składni kodu, który uniemożliwia jego wykonanie", 
                               "Błąd logiczny w działaniu programu", 
                               "Komentarz w kodzie"],
                "poprawna": 0
            },
            {
                "pytanie": "Co zwróci wyrażenie Python.lower()",
                "odpowiedzi": ["python", "PYTHON", "Python"],
                "poprawna": 0
            },
            {
                "pytanie": "Jakiego typu danych zwraca funkcja enumerate()?",
                "odpowiedzi": ["Iterator zwracający krotki (indeks, wartość)", 
                               "Listę wartości", 
                               "Słownik indeksów i wartości"],
                "poprawna": 0
            },
            {
                "pytanie": "Co oznacza __init__ w definicji klasy w Pythonie?",
                "odpowiedzi": ["Metodę inicjalizującą nowo utworzony obiekt klasy", 
                               "Metodę wywoływaną przy usuwaniu obiektu", 
                               "Metodę definiującą zachowanie obiektu przy wywołaniu funkcji"],
                "poprawna": 0
            },
            {
                "pytanie": "Jaki operator służy do łączenia (konkatenacji) stringów?",
                "odpowiedzi": ["+", "*", "/"],
                "poprawna": 0
            }
        ],
        "średnie": [
            {
                "pytanie": "Co oznacza, że Python jest językiem interpretowanym?",
                "odpowiedzi": ["Kod jest wykonywany linia po linii przez interpreter, bez konieczności kompilacji", 
                               "Kod jest wykonywany bezpośrednio przez procesor bez pośrednictwa interpretera", 
                               "Kod jest kompilowany do pliku wykonywalnego przed uruchomieniem"],
                "poprawna": 0
            },
            {
                "pytanie": "Jaka jest różnica między listą a słownikiem w Pythonie?",
                "odpowiedzi": ["Lista przechowuje elementy w kolejności, słownik w parach klucz-wartość bez gwarancji kolejności", 
                               "Lista może mieć tylko liczby, słownik tylko teksty", 
                               "Słownik jest typem niemodyfikowalnym (immutable), lista jest modyfikowalna (mutable)"],
                "poprawna": 0
            },
            {
                "pytanie": "Co oznacza wyjątek (exception) w Pythonie?",
                "odpowiedzi": ["Błąd, który występuje podczas wykonywania programu i może być obsłużony przez programistę", 
                               "Sposób na przyspieszenie działania programu", 
                               "Nowa zmienna deklarowana dynamicznie w programie"],
                "poprawna": 0
            },
            {
                "pytanie": "Jaki jest efekt wywołania metody append() na liście w Pythonie?",
                "odpowiedzi": ["Dodaje pojedynczy element na koniec listy, modyfikując ją w miejscu", 
                               "Tworzy nową listę z dodanym elementem, pozostawiając oryginał bez zmian", 
                               "Usuwa pierwszy element listy i dodaje nowy na koniec"],
                "poprawna": 0
            },
            {
                "pytanie": "Co oznacza, że zmienna jest “lokalna” w funkcji?",
                "odpowiedzi": ["Jest dostępna tylko w obrębie tej funkcji i przestaje istnieć po jej zakończeniu",
                               "Może być używana w całym programie, ale jest zdefiniowana w funkcji", 
                               "Jest zmienną globalną z ograniczoną widocznością"],
                "poprawna": 0
            },
            {
                "pytanie": "Co zwróci wyrażenie bool([]) w Pythonie?",
                "odpowiedzi": ["False (pusta lista jest traktowana jako fałsz)", 
                               "True (każda zmienna ma wartość prawdy)", 
                               "Zwróci błąd"],
                "poprawna": 0
            },
            {
                "pytanie": "Co to jest wyjątek w programowaniu?",
                "odpowiedzi": ["Błąd lub zdarzenie, które przerywa normalny przebieg programu, ale można je obsłużyć", 
                               "Nowy typ zmiennej przechowujący dane wejściowe użytkownika", 
                               "Specjalna funkcja, która automatycznie poprawia błędy w kodzie"],
                "poprawna": 0
            },
            {
                "pytanie": "Co oznacza termin „mutable” w kontekście typów danych?",
                "odpowiedzi": ["Obiekt, którego zawartość można zmieniać po jego utworzeniu", 
                               "Obiekt, który nie może być skopiowany", 
                               "Obiekt, który może zmieniać swój typ podczas działania programu"],
                "poprawna": 0
            }
        ],
        "trudne": [
            {
                "pytanie": "Co w Pythonie oznacza pojęcie immutability (niemodyfikowalności) i które typy danych są tego przykładem?",
                "odpowiedzi": ["Obiekty, których wartość nie może być zmieniona po utworzeniu, np. tuple i string", 
                               "Obiekty, które można kopiować bez zmiany oryginału", 
                               "Możliwość zmiany wartości po utworzeniu obiektu"],
                "poprawna": 0
            },
            {
                "pytanie": "Jakie jest podstawowe zastosowanie funkcji lambda w Pythonie?",
                "odpowiedzi": ["Definiowanie krótkich funkcji anonimowych, zwykle jednowierszowych", 
                               "Tworzenie modułów", 
                               "Tworzenie klas dynamicznie"],
                "poprawna": 0
            },
            {
                "pytanie": "Czym jest i do czego służy virtual environment (środowisko wirtualne) w Pythonie?",
                "odpowiedzi": ["Izolowanym środowiskiem, które pozwala na instalowanie pakietów bez wpływu na system globalny", 
                               "Programem do zarządzania pamięcią", 
                               "Specjalnym typem pliku wykonywalnego"],
                "poprawna": 0
            },
            {
                "pytanie": "Jaka jest różnica między listą a krotką (tuple) w Pythonie?",
                "odpowiedzi": ["Lista jest zmienialna (mutable), a krotka niezmienialna (immutable)", 
                               "Krotka jest typem globalnym, lista lokalnym", 
                               "Krotka jest zmienialna (mutable), a lista niezmienialna (immutable)"],
                "poprawna": 0
            },
            {
                "pytanie": "Czym jest metaklasa w Pythonie i jakie jest jej główne zastosowanie?",
                "odpowiedzi": ["Klasa tworząca inne klasy, kontrolująca ich sposób tworzenia", 
                               "Klasa, która dziedziczy po klasie bazowej", 
                               "Klasa służąca do serializacji danych"],
                "poprawna": 0
            },
            {
                "pytanie": "Jak działa garbage collector w Pythonie i jaka jest różnica między referencyjnym zliczaniem a cyklicznym zbieraniem śmieci?",
                "odpowiedzi": ["Referencyjne zliczanie usuwa obiekty, gdy liczba ich referencji spadnie do zera, a cykliczne zbieranie wykrywa i usuwa obiekty tworzące cykle referencji", 
                               "Garbage collector działa tylko na listach i słownikach", 
                               "Garbage collector usuwa obiekty natychmiast po ich użyciu"],
                "poprawna": 0
            },
            {
                "pytanie": "Jaka jest różnica między programowaniem synchronicznym a asynchronicznym?",
                "odpowiedzi": ["Synchroniczne czeka na zakończenie operacji, asynchroniczne pozwala wykonywać inne zadania równolegle", 
                               "Synchroniczne to programowanie w Pythonie, asynchroniczne w Javie", 
                               "Synchroniczne oznacza powolne działanie programu, asynchroniczne szybkie"],
                "poprawna": 0
            },
            {
                "pytanie": "Co oznacza termin „immutability” i jakie ma znaczenie w programowaniu funkcyjnym?",
                "odpowiedzi": ["Obiekty niezmienne, co ułatwia uniknięcie błędów związanych z modyfikacją danych", 
                               "Obiekty zawsze zmieniające się podczas działania programu", 
                               "Obiekty, które nie mogą być użyte w programie"],
                "poprawna": 0
            }
        ]
    }
}