0%

Van werkende code naar programmaontwerp · oefening

Bekijk het quizprogramma opnieuw

Het eindproject van Python-basis I was een werkend quizprogramma. Deze kleinere versie begint met dezelfde bekende onderdelen:

  • een lijst met vraagdictionaries;

  • één ingevoerd antwoord per vraag;

  • een functie die één antwoord controleert;

  • een functie die de quiz doorloopt en goede antwoorden telt.

questions = [
    {
        "prompt": "What does len('cat') return?",
        "answer": "3",
    },
    {
        "prompt": "Which keyword starts a function?",
        "answer": "def",
    },
]

Elke dictionary modelleert één vraag. De sleutels leggen een informele afspraak vast: elk record moet een prompt en een answer bieden.

Volg de aanroep

De quizlus kan overeenkomende posities uit de twee lijsten selecteren:

for index in range(len(question_list)):
    question = question_list[index]
    response = response_list[index]

Daarna vraagt de lus check_answer om een booleaans resultaat:

if check_answer(question, response):
    score += 1

Het ontwerp is procedureel, leesbaar en geschikt voor een klein programma. We zoeken geen excuus om het te vervangen. We leggen een werkend uitgangspunt vast dat latere ontwerpen echt moeten verbeteren.

Zet één ronde van de quiz in de juiste volgorde:

Sleep de opties in de juiste volgorde of gebruik de pijlknoppen.

  • Vergelijk het ingevoerde antwoord met het opgeslagen antwoord.

  • Roep check_answer aan.

  • Selecteer een vraag en het bijbehorende ingevoerde antwoord.

  • Verhoog de score wanneer het resultaat waar is.

Maak de bekende functie af

De editor levert de gegevens en check_answer. Maak run_quiz af zonder het gegevensmodel te veranderen. Dit is een oefening in lezen en reconstrueren, geen herontwerp.

Opdracht

Maak run_quiz af.

Doorloop elke vraagpositie, selecteer het bijbehorende ingevoerde antwoord, roep check_answer aan en geef het aantal goede antwoorden terug. Het meegeleverde programma moet Score: 2/3 afdrukken.