0%

Programme planen, bauen und testen · Übung

Nutze Pseudocode als Wegweiser

Pseudocode ist eine Beschreibung der Programmlogik in gewöhnlicher Sprache. Damit kannst du die Reihenfolge der Operationen festlegen, bevor auch noch Pythons Satzzeichen und Einrückungen Aufmerksamkeit verlangen.

Für eine Quizantwort:

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"

Das ähnelt Code, weil es den Ablauf beschreibt. Pseudocode hat aber keine offizielle Syntax. Die hilfreiche Frage lautet nicht „Wird Python das ausführen?“, sondern „Kann ich jeden Schritt in Code übersetzen?“

Passe den Detailgrad an das Problem an

Zu vage:

handle the answer

Zu detailliert für einen frühen Plan:

set cleaned_given to given.strip().lower()

Nützlich:

if the cleaned given answer is empty, return "missing"

Die Beschreibung benennt die Entscheidung und das Ergebnis, ohne sich in Python-Syntax zu verlieren.

Jeder Schritt sollte einen Zweck haben

Zerlege eine größere Aufgabe in sichtbare Aktionen:

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"

So wird eine wichtige Entscheidung zur Reihenfolge sichtbar: Prüfe zuerst, ob eine Antwort fehlt, bevor du entscheidest, ob zwei bereinigte Antworten übereinstimmen.

Überarbeite den Plan, wenn du etwas dazulernst

Pseudocode ist kein in Stein gemeißelter Vertrag. Wenn ein von Hand durchgearbeitetes Beispiel eine fehlende Regel zeigt, aktualisiere die Beschreibung, bevor du weitermachst. Eine Zeile aus einem Plan zu streichen ist viel weniger aufwendig, als fünf Codezeilen zu entwirren, die auf der falschen Annahme beruhen.

Der Plan sollte klarer werden, je besser du das Problem verstehst.

Behalte ihn bei der Umsetzung im Blick

Du kannst Pseudocode als vorübergehende Python-Kommentare schreiben:

# Clean the given answer.
# Clean the expected answer.
# Return missing for an empty given answer.
# Return correct when the answers match.
# Otherwise, return incorrect.

Behalte die Pseudocode-Kommentare in dieser Übung bei, damit du den Wegweiser mit dem fertigen Code vergleichen kannst. Entferne in späteren Programmen Kommentare, die nur eine offensichtliche Anweisung wiederholen. Behalte dagegen Kommentare, die eine nicht offensichtliche Entscheidung erklären.

Welcher Pseudocode-Schritt nennt sowohl eine bestimmte Bedingung als auch das Ergebnis für diese Bedingung?

Aufgabe

Plane und implementiere answer_status(given, expected) anhand dieses Vertrags:

  • Bereinige beide Antworten, indem du umgebende Leerraumzeichen entfernst und die Groß- und Kleinschreibung ignorierst.

  • Eine leere bereinigte Antwort given liefert "missing" zurück.

  • Übereinstimmende bereinigte Antworten liefern "correct" zurück.

  • Jede andere Antwort liefert "incorrect" zurück.

Bevor du die Python-Bedingungen schreibst, ersetze die fünf TODO-Kommentare im Startcode durch Pseudocode in gewöhnlicher Sprache. Beschreibe darin das Bereinigen jeder Antwort und die Wahl zwischen den drei möglichen Ergebnissen. Behalte diese Kommentare über dem Code bei, den sie beschreiben. Übersetze den Wegweiser dann in den Funktionskörper.

Behalte die vorbereiteten Aufrufe bei. Die endgültige Ausgabe muss lauten:

correct
incorrect
missing