Python außerhalb des Browsers · Übung
Eine Datei überdauert den Programmlauf
Ein Name in der REPL gehört zu einer einzelnen Interpreter-Sitzung. Eine gespeicherte .py-Datei ist anders: Sie bewahrt Quellcode auf, also die Anweisungen, die ein späterer Programmlauf lesen kann.
Halte drei Begriffe auseinander:
Die Datei wartet in Form gespeicherter Anweisungen;
ein Interpreter liest diese Anweisungen und führt sie aus;
ein Programmlauf nutzt vorübergehenden Speicher, während die Anweisungen ausgeführt werden. Das ist das vereinfachte Prozessmodell aus der vorherigen Lektion.
Im Editor der Website steht bereits vertraute Syntax:
runs_in_this_execution = 0
runs_in_this_execution += 1
print()
Vervollständige die Ausgabezeile, damit das Programm Folgendes anzeigt:
This run counts to 1.
Verwende einen f-String, der runs_in_this_execution liest; gib die Antwort nicht als feststehenden Satz ein. Führe den gespeicherten Quellcode zweimal aus. Beide Läufe zeigen dieselbe Zeile, weil die erste Zuweisung den Namen jedes Mal ausgehend von null neu aufbaut. Einen Wert im Speicher eines Programmlaufs zu ändern schreibt den gespeicherten Quellcode nicht um.
Das ist die zentrale Idee dieses Kapitels, deshalb lohnt es sich, sie noch einmal in einfachen Worten zu sagen: Die Datei behält etwas. Der Programmlauf nicht.
Noch eine Versionsangabe, bevor wir weitermachen: Python Land führt diesen Kurs mit Python 3.13 aus, und das Projekt, das du in Kapitel 4 herunterlädst, funktioniert mit Python 3.10 oder neuer. Dieses kleine Programm läuft mit jeder dieser Versionen.
Als Nächstes behandelt Kapitel 2, Die nötigen Grundlagen der Kommandozeile, Terminals, Arbeitsverzeichnisse, Pfade und schließlich die Frage, wie python report.py einen Interpreter mit einer Datei verbindet. Kapitel 3 behandelt isolierte Umgebungen und Pakete. Kapitel 4 behandelt Download, Editor-Einrichtung, lokale Ausführung und lokale Prüfung. Diese Lektion überprüft keinen dieser späteren Schritte.
Du führst das gespeicherte Programm zweimal aus, und es gibt beide Male This run counts to 1. aus. Warum beim zweiten Mal nicht 2?
Was ist der Unterschied zwischen der Datei und dem Programmlauf?
Hängst du am f-String fest? Frage Monty: „Was ist der Unterschied zwischen print(f"...{runs_in_this_execution}") und der direkten Eingabe der Zahl?“ Genau um diesen Unterschied geht es in dieser Übung.
Aufgabe
Vervollständige den letzten print-Aufruf mit einem f-String, der runs_in_this_execution liest. Führe den gespeicherten Quellcode zweimal aus und beobachte jedes Mal dieselbe exakte Zeile: This run counts to 1.