Programma’s plannen, bouwen en testen · oefening
Gebruik pseudocode als plan
Pseudocode is een beschrijving van de logica van een programma in gewone taal. Je kunt er de volgorde van bewerkingen mee bepalen voordat ook de leestekens en inspringing van Python aandacht vragen.
Voor één quizantwoord:
receive the given answer and expected answer
clean the given answer
clean the expected answer
if the given answer is empty, return "missing"
if the answers match, return "correct"
otherwise, return "incorrect"
Dit lijkt op code, omdat het de programmastroom beschrijft, maar pseudocode heeft geen officiële syntaxis. De nuttige vraag is niet “Kan Python dit uitvoeren?”, maar “Kan ik elke stap in code omzetten?”
Stem het detailniveau af op het probleem
Te vaag:
handle the answer
Te gedetailleerd voor een eerste plan:
set cleaned_given to given.strip().lower()
Nuttig:
if the cleaned given answer is empty, return "missing"
Het overzicht benoemt de beslissing en het resultaat zonder te verdwalen in Python-syntaxis.
Eén stap moet één doel hebben
Verdeel een grotere taak in zichtbare acties:
clean the given answer
clean the expected answer
if the given answer is empty, return "missing"
if the answers match, return "correct"
otherwise, return "incorrect"
Dit legt een belangrijke keuze in de volgorde bloot: controleer op een ontbrekend antwoord voordat je beslist of twee opgeschoonde antwoorden overeenkomen.
Pas het plan aan wanneer je iets leert
Pseudocode is geen afspraak die in steen is gebeiteld. Als een handmatig uitgewerkt voorbeeld een ontbrekende regel laat zien, pas je het overzicht aan voordat je verdergaat. Eén regel uit een plan wissen kost veel minder dan vijf regels code ontwarren die op een verkeerde aanname zijn gebouwd.
Het plan moet duidelijker worden naarmate je begrip groeit.
Houd het bij de hand tijdens de implementatie
Je kunt pseudocode als tijdelijke Python-commentaarregels schrijven:
# Clean the given answer.
# Clean the expected answer.
# Return missing for an empty given answer.
# Return correct when the answers match.
# Otherwise, return incorrect.
Behoud in deze oefening de commentaarregels met pseudocode, zodat je het plan met de afgeronde code kunt vergelijken. Verwijder in latere programma’s commentaar dat alleen een voor de hand liggende instructie herhaalt, maar behoud commentaar dat een minder duidelijke beslissing uitlegt.
Welke pseudocodestap geeft zowel een specifieke voorwaarde als het resultaat voor die voorwaarde?
Opdracht
Plan en implementeer answer_status(given, expected) volgens deze afspraak:
schoon beide antwoorden op door witruimte aan de buitenkant te verwijderen en hoofdletters te negeren;
een leeg opgeschoond antwoord
givengeeft"missing"terug;overeenkomende opgeschoonde antwoorden geven
"correct"terug;elk ander antwoord geeft
"incorrect"terug.
Vervang voordat je de Python-voorwaarden schrijft de vijf commentaarregels met TODO uit de startcode door pseudocode in gewone taal voor het opschonen van elk antwoord en het kiezen uit de drie mogelijke resultaten. Houd die commentaarregels boven de code die erbij hoort. Zet het plan daarna om in het functieblok.
Behoud de voorbereide aanroepen. De uiteindelijke uitvoer moet zijn:
correct
incorrect
missing