Variable
Um mehr mit Python zu unternehmen, als einfach nur Berechnungen durchzuführen, brauchen wir eine Möglichkeit, Werte logisch zu speichern. Dazu nutzen wir Variable (auf Englisch als "variables" bezeichnet).
Wertzuweisung
[Bearbeiten]Um eine Variable zu definieren, müssen wir ihr einen Wert zuweisen. Dies tun wir mit dem Zuweisungsoperator, der durch das Gleichheitszeichen (=) symbolisiert wird:
>>> radius = 10
>>>
Der Wert rechts vom Gleichheitszeichen wird dabei der Variablen links vom Gleichheitszeichen zugewiesen. In diesem Beispiel haben wir die neue Variable „radius“ erstellt und ihr den Wert 10 zugewiesen. Den Namen der Variablen können wir frei wählen (innerhalb gewisser Grenzen, mehr dazu unten).
Python akzeptiert unseren Befehl ohne eine Rückmeldung. Aber wir können uns ab jetzt den Wert der Variablen anzeigen lassen, indem wir ihren Namen eingeben und Enter drücken:
>>> radius
10
Auf die selbe Art können wir unserem „radius“ jederzeit einen neuen Wert zuweisen:
>>> radius = 20
>>> radius
20
Das Gleichheitszeichen dient hier als Zuweisungsoperator („weise zu“) und nicht im mathematischen Sinne („ist gleich“). Daher ist folgender Befehl möglich und erlaubt:
>>> radius = radius * 2
>>> radius
40
Was haben wir hier getan? Wir haben Python gesagt: „Nimm den Wert der Variable radius, verdopple ihn und weise ihn wieder der Variable radius zu“.
Nebenbei, das funktioniert natürlich auch mit den anderen in Python definierten Operatoren:
>>> radius = 5
>>> 2 ** radius
32
Zuweisungen können auch verkettet werden: die Anweisung a = b = c weist a und b den Wert von c zu.
In einer Zuweisung können mehrere, durch Komma getrennte, Objekte zugewiesen werden. Beispiel:
a, b = b, a # Die Werte von a und b werden vertauscht
Zuweisungsoperatoren
[Bearbeiten]Außer dem bereits genannten Operator = gibt es auch kombinierte Zuweisungsoperatoren, die eine Operation (zum Beispiel Addition) auf die Variable auf der linken Seite und die auf der rechten anwenden, und das Ergebnis der linken Variablen zuweisen. Das funktioniert mit allen binären[1] Rechen- und Bit-Operatoren, also +, -, *, /, ** usw. Dazu werden die beiden Symbole ohne Leerzeichen dazwischen aneinandergehängt; die kombinierten Operatoren sind dann +=, -=, *=, /=, **= usw. Beispiel: x **= 2 ist das Gleiche wie x = x**2, x wird quadriert.
| Verknüpfung | Operator-Symbol | kombiniert mit Zuweisung |
|---|---|---|
| Potenz | ** | **= |
| Multiplikation | * | *= |
| Division | / | /= |
| Ganzzahlige Division | // | //= |
| Modulo | % | %= |
| Addition | + | += |
| Subtraktion | - | -= |
| bitweises Und | & | &= |
| bitweises Oder | | | |= |
| bitweises XOR | ^ | ^= |
| bitweise Verschiebung (shift) nach links | << | <<= |
| bitweise Verschiebung (shift) nach rechts | >> | >>= |
Beispiel:
>>> x = 0x2E
>>> x -= 1
>>> x
45
>>> x **= 2
>>> x
2025
Variablennamen
[Bearbeiten]Variablennamen können aus Buchstaben, Ziffern und _ (Unterstrich) bestehen, dürfen aber nicht mit einer Ziffer beginnen.
Auch wenn Ihnen niemand vorschreiben kann, wie Sie Ihre Variablen benennen, gibt es doch vernünftige Vorschläge. Das Dokument PEP8 der Python-Foundation beschäftigt sich en Detail mit Namenskonventionen, unter anderem mit der für Variablen: „… names should be lowercase, with words separated by underscores as necessary to improve readability. Variable names follow the same convention…“ (wörtlich zitiert aus besagtem Dokument). Das Dokument trifft keine Aussagen über die Länge eines Variablennamens.
Auch wenn Sie eine Vielzahl an verschiedenen Zeichen zur Verfügung haben (s.u.), sollten Sie sich bei der Benennung auf die 26 lateinischen Buchstaben (a-z, A-Z), Ziffern (0-9) und den Unterstrich (_) beschränken.
Exkurs: der Unterstrich, ein gültiger Variablenname, wird vom Interpreter belegt, um im interaktiven Modus das letzte Rechenergebnis zu speichern:
>>> radius = 20
>>> radius = radius / 2
>>> radius
10.0
>>> _
10.0
Fassen wir zusammen:
- Namen sollten kleingeschrieben werden (radius statt Radius).
- Einzelne Wörter werden durch den Unterstrich getrennt, falls damit die Lesbarkeit verbessert wird (mein_haus statt meinhaus).
- In der Praxis werden einzelne Buchstaben wie z.B. „i“ nur für einfaches Zählen eingesetzt.
- Der Name sollte nicht zu lang, aber aussagekräftig sein.
- Der Unterstrich _ alleine sollte im interaktiven Modus nicht genutzt werden.
- Am besten nutzen Sie nur die 26 lateinischen Buchstaben (a-z, A-Z), Ziffern (0-9) und den Unterstrich (_) als Zeichen.
Es ist sinnvoll, sich an diese Konventionen zu halten, weil Ihr Code dadurch für andere Programmierer leichter verständlich wird! Das erleichtert die Einarbeitung neuer Leute, sobald Ihnen dieses Buch zu Ihrer eigenen Firma verholfen hat :)
Exkurs: Encoding
[Bearbeiten]Standardmäßig nutzt Python UTF-8 (Wikipedia: UTF-8). Damit stehen Ihnen ein großer Teil unserer Schriftzeichen direkt zur Verfügung.
Hier einige Beispiele:
>>> Ͱ = 20
>>> Ͱ
20
>>> ß = 10
>>> ß
10
>>> ḉ = 5
>>> ḉ
5
Welche Zeichen genau unterstützt werden, hängt vom Interpreter und ggf. dem Betriebssystem ab.
Variablendeklaration
[Bearbeiten]Falls Sie andere Programmiersprachen kennen, wundern Sie sich vielleicht über die fehlende Variablendeklaration. Wir haben Python nicht mitgeteilt, welchen Datentyp die neue Variable haben soll! Python nimmt uns hier die Arbeit ab und setzt den Typen automatisch. Wie schon im letzten Kapitel gezeigt, können wir uns den Typen anzeigen lassen:
>>> type (radius)
<class 'int'>
Das heißt aber auch, dass eine Variable nicht auf einen Datentypen festgelegt ist:
>>> radius = 5
>>> type (radius)
<class 'int'>
>>> radius = 3.5
>>> type (radius)
<class 'float'>
Arbeiten mit Variablen
[Bearbeiten]Unsere neu erstellte Variable bleibt während der gesamten Laufzeit von Python verfügbar.
>>> umfang = 2 * 3.14 * radius
>>>
Hier nutzen wir vorher festgelegte Variable radius um daraus den Umfang zu berechnen (nach der Formel ; für dieses Beispiel reicht uns eine Genauigkeit von auf zwei Stellen).
Fangfrage: wenn wir den Wert für radius ändern, ändert sich dann auch der Wert von umfang?
>>> radius = 3.5
>>> umfang = 2 * 3.14 * radius
>>> umfang
21.98
>>> radius = 10
>>> umfang
21.98
Antwort: nein, tut er nicht. Wir erinnern uns: der Variable ist ein Wert zugewiesen, keine Funktion. Die beiden Variablen sind nicht miteinander verknüpft.
Variable löschen
[Bearbeiten]Es gibt auch die Möglichkeit, Variable zu löschen. Dazu nutzen wir die Anweisung del mit der Variablen als Parameter:
>>> x = 30
>>> x
30
>>> del x
>>> x
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
>>>
Undefinierte Variable
[Bearbeiten]Wenn wir versuchen, eine Variable zu nutzen, die wir nicht definiert haben, erhalten wir von Python eine Fehlermeldung:
>>> Radius
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'Radius' is not defined. Did you mean: 'radius'?
Erfreulicherweise schlägt uns Python auch gleich den „richtigen“ Namen, nämlich die bestehende Variable vor.
Wie das Beispiel gezeigt hat, unterscheidet Python zwischen Groß- und Kleinschreibung: "radius" und "Radius" sind zwei verschiedene Variablen (ebenso wie "rAdius", "RADius" usw.).
Konstanten
[Bearbeiten]Symbolische Konstanten gibt es in Python nicht; stattdessen sind spezielle Vereinbarungen für Variablennamen (Namenskonventionen) üblich. Man schreibt sie in Großbuchstaben, damit alle an einem Programm arbeitenden Personen wissen, dass diese Variable wie eine Konstante behandelt werden soll.
Anstelle von Konstanten werden also Variablen verwendet, bei der Programmierer vereinbaren, ihren Namen in Großbuchstaben zu schreiben und sie nach der Initialisierung nicht mehr zu ändern. Dies ist ein Teil des Python way of coding, der oft von weniger Strenge und Formalismus geprägt ist.
Zusammenfasung
[Bearbeiten]- Sie wissen, dass sie mittels Gleichheitszeichen (=) einer Variable einen Wert zuweisen können
- Ihnen ist bewusst, dass Python den Datentyp einer Variablen automatisch festlegt - und zwar jedesmal, wenn wir ihr einen Wert zuweisen
- Sie haben einen Überlick, wie Variablen benannt werden können/sollten

- ↑ Operatoren mit 2 Operanden