0%

Python außerhalb des Browsers

Ein laufendes Python hat einen Speicher

Am Ende dieses Kurses wirst du ein Projekt auf deinem eigenen Computer haben, mit einer eigenen Umgebung, eigenen Tests und einer Anleitung, die gut genug ist, damit jemand anderes es ausführen kann. Unterwegs lernst du das Terminal, die Paketverwaltung, echte Dateien und einen Dienst kennen, der manchmal absichtlich fehlschlägt.

Wir beginnen aber im Kleinen, denn eine grundlegende Idee solltest du zuerst klären: Was führt deinen Code eigentlich aus, und was passiert mit allem, was es sich merkt, wenn es endet?

Zwei nützliche Begriffe

Python-Code ist eine Sammlung von Anweisungen. Der Python-Interpreter ist das Programm, das diese Anweisungen liest und ausführt. Es ist ein echtes Programm auf einem echten Computer, genau wie ein Texteditor oder ein Browser.

Während es läuft, stellt der Computer dieser Arbeit Speicher zur Verfügung, um sich Dinge zu merken. Eine laufende Instanz eines Programms samt ihrem vorübergehenden Speicher ist ein Prozess.

Hier brauchst du keine Einzelheiten über Betriebssysteme. Der wichtige Unterschied ist kleiner und praktischer: Gespeicherte Anweisungen können erhalten bleiben, während der Speicher eines Programmlaufs verschwindet, wenn dieser Lauf endet.

Beobachte, wie ein Name verschwindet

Der Bereich neben dieser Lektion ist eine REPL: ein Python-Interpreter, der jeweils auf eine Zeile wartet. Die Eingabeaufforderung >>> bedeutet, dass er bereit ist. Es ist keine Shell und auch keine Python-Installation auf deinem Computer; die lokale Einrichtung beginnt in Kapitel 3.

Gib Folgendes ein und drücke Enter:

message = "ready"

Gib jetzt nur den Namen ein und drücke Enter:

message

Der Interpreter zeigt 'ready' an. Er hat sich den Wert gemerkt.

Drücke jetzt in der REPL auf Restart und frage noch einmal nach message.

Diesmal sagt Python, dass der Name nicht definiert ist. Nichts ist kaputt. Der Neustart hat einen Prozess beendet und einen neuen gestartet. Der neue Prozess kannte deinen Namen nie. Der Speicher ist zusammen mit dem Programmlauf verschwunden.

Probiere es noch ein paarmal mit anderen Werten aus, wenn dir das hilft. Es ist eine kleine Beobachtung, die später erstaunlich viel erklärt: warum ein Programm sich zwischen zwei Läufen nichts merken kann, wenn du nicht ausdrücklich dafür sorgst, und warum „Vor einer Minute hat es noch funktioniert“ manchmal bedeutet: „Es hat in einem Prozess funktioniert, der nicht mehr existiert.“

Lerne Monty kennen

Monty ist der in Python Land integrierte KI-Tutor. Dies ist ein guter Moment, ihn vorzustellen, denn wie du fragst, ist wichtiger, als die meisten erwarten.

Eine ungenaue Frage führt zu einer ungenauen Antwort. Probiere diese Frage aus, die konkret genug ist, um hilfreich zu sein:

Frage Monty: „Warum verschwindet message, wenn ich die REPL neu starte, aber der Code, den ich im Editor eingebe, nicht?“

Diese Frage benennt, was du getan hast, was du erwartet hast und was dich überrascht hat. Mit diesen drei Angaben kann dir jemand tatsächlich helfen, ob Mensch oder nicht.

Monty ist im gesamten Kapitel kostenlos. Nutze ihn hier also nach Belieben, um ein Gefühl für hilfreiche Fragen zu bekommen. Ab Kapitel 2 gehört die vollständige Unterstützung durch Monty zum Guided-Abonnement. Du kannst den Kurs vollständig ohne sie abschließen; alles Nötige steht in den Lektionen selbst. Guided bietet dir eine zweite Erklärung, wenn die erste nicht verständlich war, und einen Hinweis, wenn du um elf Uhr abends feststeckst und niemanden fragen kannst.

Du definierst message = "ready" in der REPL, startest sie neu und fragst erneut nach message. Warum ist der Name nicht definiert?

Welches Aussagenpaar ist richtig?

Die nächste Lektion bewahrt die Anweisungen auf, statt sich auf den Speicher einer einzelnen Sitzung zu verlassen.