Kapitel 13
Wie es weitergeht
Von den ersten Anweisungen zu vollständigen Programmen
Am Anfang dieses Kurses war es ein echter Erfolg, zwei print()-Anweisungen auszuführen. Du musstest lernen, was Code ist, wo du ihn eingibst, wie du ihn ausführst und wo seine Ausgabe erscheint.
Jetzt hast du ein interaktives Quizprogramm fertiggestellt, das du über mehrere Lektionen hinweg entwickelt hast.
Dieser Weg zählt. Fortschritt lässt sich leicht übersehen, wenn jede Lektion nur eine überschaubare Idee hinzufügt.
Du kannst mit Werten und Daten arbeiten
Du kannst:
Strings, ganze Zahlen, Fließkommazahlen und boolesche Werte unterscheiden;
Werte in aussagekräftig benannten Variablen speichern;
neue Werte berechnen;
mit f-Strings lesbare Meldungen erstellen;
Text untersuchen und umwandeln;
geordnete Elemente mit Listen abbilden;
Datensätze mit benannten Feldern durch Dictionaries abbilden;
die Paare erkennen, die
.items()für ein Dictionary liefert, und einschätzen, wann die eindeutigen Werte eines Sets zu einer Aufgabe passen.
Das sind keine isolierten Syntaxregeln. Sie ermöglichen es einem Programm, Informationen darzustellen.
Du kannst steuern, was ein Programm tut
Du kannst:
mit
if,elifundelsezwischen Wegen wählen;Bedingungen verknüpfen und umkehren;
Strings, Listen und Dictionary-Datensätze in Schleifen durchlaufen;
etwas wiederholen, bis sich eine Bedingung ändert;
breakundcontinuegezielt einsetzen;Eingaben prüfen und erwartete Fehler bei Umwandlungen abfangen.
Diese Werkzeuge setzen gespeicherte Informationen in Verhalten um.
Du kannst Code strukturieren und untersuchen
Du kannst:
Funktionen mit Parametern definieren;
Werte an den aufrufenden Code zurückgeben;
lokale Arbeit innerhalb einer Funktion halten;
mehrere Funktionen mit klaren Aufgaben zusammensetzen;
Tracebacks von unten lesen;
einen Fehler mit einem kleinen Beispiel reproduzieren;
Annahmen prüfen, statt zu raten;
einen fehlenden optionalen Wert von einer verletzten Datenvereinbarung unterscheiden.
Du kannst auch vor dem Programmieren planen:
den Bedarf und den kleinsten sinnvollen Umfang beschreiben;
Anforderungen aufschreiben, die sich überprüfen lassen;
Beispiele unabhängig berechnen;
Grenzfälle auswählen;
Erwartungen mit Zusicherungen festhalten;
Pseudocode schreiben;
Code umstrukturieren und dabei sein Verhalten schützen.
Dein Abschlussprojekt verbindet den Kursstoff
Das Quizprogramm verwendet:
ein Dictionary mit einer Liste von Frage-Dictionaries;
das Bereinigen und Vergleichen von Strings;
eine Eingabeprüfung mit einer Schleife für erneute Versuche;
Funktionen mit eng umrissenen Aufgaben;
eine Schleife und einen Akkumulator für den Punktestand;
zurückgegebene boolesche Werte und ganze Zahlen;
einen Einstiegspunkt, der testbar bleibt;
Testabläufe mit normalen, falschen, zu bereinigenden und leeren Eingaben.
Die Leistung liegt nicht in einer einzelnen Zeile. Sie liegt darin, erklären zu können, wie diese Teile zusammenarbeiten.
Routine entsteht nach dem ersten Verständnis
Vielleicht schlägst du weiterhin Satzzeichen, Methodennamen oder Beispiele nach. Das tun erfahrene Programmierer auch.
Ein hilfreicherer Maßstab ist, ob du:
sagen kannst, was das Programm tun soll;
einen kleinen nächsten Schritt auswählen kannst;
das Programm ausführen kannst;
das Ergebnis mit einer Erwartung vergleichen kannst;
Abweichungen untersuchen kannst.
Dieses Vorgehen ist eine Grundlage, die du auch bei größeren Programmen weiter nutzen kannst.
Welche Aussage beschreibt am besten, wie das Quizprogramm den Kursstoff nutzt?
Was gibt dieses Programm aus?
def count_long_words(words, minimum):
count = 0
for word in words:
if len(word) >= minimum:
count += 1
return count
items = ["tea", "coffee", "water"]
print(count_long_words(items, 5))