6 Variablen – jetzt wird es flexibel
Jeder Computer hat nicht nur sein Rechenwerk, sondern er braucht vor allem auch einen Speicher, in dem er Daten zwischenlagern kann. Beim Programmieren nutzen wir diesen Speicher konkret mithilfe von Variablen. Erst damit kann man wirklich sinnvoll Daten verarbeiten, denn sonst wären jeder Wert und jedes Ergebnis in einem Programm ja vorherbestimmt.
Erinnerst du dich an die Vorstellung vom Computer als Bearbeiter, der an seinem Schreibtisch sitzt und ständig Daten aus kleinen Schubladen holt, die er bearbeitet und dann wieder in diese Schubladen hineinsteckt? Diese Schubladen werden wir jetzt auch verwenden.
Es sind die sogenannten Variablen, die in jeder Programmiersprache eine außerordentlich wichtige Rolle spielen.
Variabel heißt »veränderlich« – eine Variable ist ein Platzhalter für eine veränderliche Zahl, eine Zeichenkette oder einen anderen Datenwert. Die Variable ist also wie die Schublade, in die man einen Wert hineinstecken kann. Diese Schublade hat eine Beschriftung, damit man immer weiß, was wo drin ist. Die Beschriftung ist der Variablenname, mit dem man auf ihren Inhalt zugreifen kann.
Aber genug der Theorie. Wie sieht das in der Praxis aus?
Wir bleiben noch in der Konsole und geben mal folgenden Befehl ein:
(¢)-Taste … und …? Im Ausgabefenster passiert nichts, denn wir haben ja keinen Ausgabebefehl gegeben. Der Befehl a = 25 sagt Python Folgendes:
Speichere die Zahl 25 in einer Variablen mit dem Namen a.
[+] Merke
Wenn wir einen Variablennamen angeben, dahinter ein Gleichheitszeichen und dann einen Zahlausdruck oder eine Zeichenkette stellen, wird dieser Wert in die Variable geschrieben. Wenn die Variable noch nicht existiert, wird sie dabei automatisch erzeugt.
Jetzt gibt es also so etwas wie eine Schublade, die die Aufschrift a trägt, und in der Schublade liegt die Zahl 25.
Python bestätigt das im Dialogfenster mit der Meldung a: 25. Das heißt also: a steht fortan für die Zahl 25.
Gib jetzt Folgendes in der Konsole ein:
Ergebnis:
25
Immer wenn wir jetzt den Namen a in einem Kommando verwenden, weiß Python, dass wir den Wert meinen, der in der Variable a drinsteckt.
Du kannst mit der Variable jetzt genauso rechnen wie mit dem Wert 25 selber.
print a + 10
ergibt:
35
[+] Variablen und ihre Werte
Variablen werden erst in dem Moment angelegt, in dem du ihnen einen Wert gibst. Wenn ich a = 1 schreibe, dann habe ich eine Variable a angelegt, die als Inhalt den Wert 1 hat. Wenn ich der Variable später einen anderen Wert gebe, zum Beispiel a = 12.5, dann ändert sich der Wert dieser vorhandenen Variablen a, und es wird keine neue Variable angelegt.
Du kannst in Programmen nur Variablen zum Rechnen verwenden oder ausgeben, die du vorher auch angelegt hast und denen du einen Wert gegeben hast. Variablen, denen du nie einen Wert gegeben hast, existieren nicht. Das kannst du in der Konsole leicht ausprobieren. Gib mal ein:
print b
Das Ergebnis ist eine Fehlermeldung:
Der Name 'b' ist nicht definiert oder falsch geschrieben.
Es existiert also keine Variable oder Funktion mit diesem Namen.
b kann nicht ausgegeben werden, weil b nicht existiert. Logisch, oder?
Erst wenn du b = 125 (oder etwas anderes) schreibst, dann existiert auch die Variable b, und dann kannst du sie auch für Berechnungen verwenden oder ausgeben.
Variablennamen
Natürlich dürfen Variablen nicht nur a, b oder c heißen. Sie können alle möglichen Namen wie eingabezahl oder geschwindigkeit oder meinErgebnis haben. Namen, die uns einen Hinweis geben, wofür die Variable verwendet wird, helfen sehr beim Programmieren.
Allerdings gibt es auch klare Regeln, wie man Variablen nennen darf und wie nicht, damit Python die Variablen immer eindeutig als solche erkennen kann.
-
Variablennamen dürfen aus Klein- und Großbuchstaben sowie aus Zahlen bestehen. Sie müssen aber immer mit einem Buchstaben beginnen. Beachte aber, dass Groß- und Kleinbuchstaben wirklich unterschieden werden und ein Name nicht mal groß und mal klein geschrieben werden kann. Dann wären es zwei verschiedene Namen.
-
In der Regel werden normale Variablennamen in Python immer mit kleinen Buchstaben geschrieben, Leerzeichen werden meist durch Unterstriche dargestellt. Das ist kein Muss, aber es ist in Python üblich, um Programme auch für andere gut lesbar zu halten.
-
Variablennamen dürfen keine Sonderzeichen, deutschen Umlaute oder Leerzeichen enthalten, sondern wirklich nur internationale Buchstaben und Zahlen – und den Unterstrich _ als Ausnahme.
-
Will man eine Variable mit einem Namen benennen, der aus zwei Wörtern besteht, dann kann man statt des Leerzeichens also den Unterstrich verwenden, das wird snake_case genannt – oder man arbeitet mit Großbuchstaben zur Trennung. Das heißt camelCase (kleiner Anfangsbuchstabe und großer Buchstabe für das nächste Wort) bzw. CapWords – das erste wie zweite Wort beginnt mit einem Großbuchstaben ohne Leerzeichen. In TigerJython wird häufig camelCase für Variablennamen verwendet, wir werden dies auch in einigen Fällen tun und halten uns ansonsten an die Python-Empfehlung snake_case.
Beispiele für Variablennamen:
Nun weißt du, wie man Variablen benennen kann. Jetzt geht es darum, wie man sie verwendet.
Variablen dürfen in Python Zahlen oder Strings enthalten. Zum Beispiel:
vorname = "Erwin"
Gib anschließend ein:
print "Hallo "+vorname + "!"
Die Ausgabe ist:
Hallo Erwin!
Oder noch mal ein Beispiel. Gib nacheinander die folgenden drei Zeilen ein:
wert = 21
doppelter_wert = wert * 2
print "Das Doppelte von",wert,"ist", doppelter_wert
Nach der letzten Zeile bekommst du die Ausgabe:
Das Doppelte von 21 ist 42
Im ersten Befehl wurde die Zahl 21 in die Variable mit dem Namen wert gelegt. Danach wurde die Variable doppelter_wert mit dem Ausdruck wert * 2 belegt. Dadurch stand die Zahl 42 in der Variable, denn Python rechnet ja jeden Ausdruck sofort aus. Anschließend haben wir die Variable doppelter_wert ausgegeben, vorher noch den Text »Das Doppelte ist« – und so gibt Python das Ergebnis sauber aus.
Das war schon fast ein richtiges Programm – nur dass wir die Befehle direkt nacheinander eingegeben haben. Wir sind jetzt knapp vor dem Programmieren!
Eines fehlt aber noch, damit Variablen wirklich veränderlich sind und ihr Inhalt nicht von Anfang an vorgegeben ist. Es muss eine Möglichkeit geben, dass der Benutzer den Inhalt einer Variablen während das Programm läuft, direkt eingibt, und dieser nicht schon durch das Programm vorher feststeht.