von: Konstantin
aktualisiert: Sept. 30, 2024
Variablen sind das Herzstück jeder Programmiersprache, und das gilt natürlich auch für Python. Aber was genau ist eine Variable? Wie deklarierst und initialisierst du sie? Und welche verschiedenen Typen gibt es überhaupt? In diesem Artikel werde ich dir alles Schritt für Schritt erklären und dir zeigen, wie du Variablen einsetzt.
Eine Variable ist im Grunde ein Platzhalter für einen Wert, den du in deinem Code verwendest. Du kannst dir das wie eine Box vorstellen, in der du etwas ablegst, um es später wieder zu verwenden. In Python können diese Boxen (also die Variablen) verschiedene Datentypen wie Zahlen, Zeichenketten oder Listen speichern.
In Python musst du eine Variable nicht explizit deklarieren, wie es in einigen anderen Programmiersprachen der Fall ist. Du weist ihr einfach einen Wert zu, und Python erkennt automatisch den Datentyp. Damit hast du die Definition einer Variable in Python im Nu erledigt:
name = "Max" # Eine Zeichenkette
alter = 25 # Eine Zahl (Integer)
Erklärung zum Code: Hier wurden zwei Variablen erstellt: name
speichert eine Zeichenkette, und alter
speichert eine ganze Zahl (einen Integer).
Verwechsle nicht =
und ==
=
dient der Zuweisung eines Wertes zu einer Variable.==
wird verwendet, um zwei Werte auf Gleichheit zu prüfen.Das heißt, du musst immer =
verwenden, wenn du einer Variable einen Wert zuweisen willst!
Nachdem du eine Variable erstellt hast, kannst du auf ihren Wert zugreifen, indem du einfach den Variablennamen verwendest. Schau dir das im Beispiel an:
print(name)
# Ausgabe: Max
print(alter)
# Ausgabe: 25
Wenn du eine neue Variable nutzt, mach dir ein paar Gedanken über einen sinnvollen Namen für die Variable. Der Variablenname ist entscheidend für die Lesbarkeit und Wartbarkeit deines Codes. Nutze beschreibende Namen, die den Zweck der Variablen deutlich machen.
Folgende Regeln solltest du befolgen:
x
, verwende summe
oder anzahl
oder so wie oben name
oder alter
._
für zusammengesetzte Namen, wie user_name
. Verwende keine Leerzeichen.else
oder break
.Super! Jetzt hast du eine neue Variable erstellt und dir Gedanken darüber gemacht, was ein sinnvoller Name für die Variable sein könnte! Mit der neuen Variablen kannst du nun Einiges anstellen!
Du kannst einer Variablen einfach einen neuen Wert zuweisen. Dadurch ändert sich der Wert der Variablen:
alter = 25
print(alter)
# Ausgabe: 25
alter = 26
print(alter)
# Ausgabe: 26
Erklärung zum Code: Der ursprüngliche Wert von alter
wurde durch 26
ersetzt.
Um den Datentyp einer Variable zu überprüfen, kannst du die type()
-Funktion verwenden. Dies ist nützlich, wenn du dir nicht sicher bist, welchen Datentyp eine Variable hat.
print(type(alter))
# Ausgabe: <class 'int'>
Oft willst du den Wert einer Variablen um einen bestimmten Wert erhöhen oder verringern. In der Regel willst du 1 addieren oder 1 abziehen. Das geht ganz einfach:
counter = 0
counter = counter + 1 # Erhöht counter um 1
print(counter)
# Ausgabe: 1
Erklärung zum Code: Hier wurde die Variable counter um 1 erhöht. Du kannst die Variable um einen beliebigen Wert erhöhen oder verringern.
Übrigens: da so etwas häufig gemacht wird, gibt es dafür sogar eine Abkürzung! Den Code oben kannst du auch wie folgt schreiben:
counter = 0
counter += 1 # Erhöht counter um 1
print(counter)
# Ausgabe: 1
Wenn du eine Variable nicht mehr benötigst, kannst du sie mit del
löschen. Das spart Speicher und verhindert eventuell unerwünschte Fehler.
zahl = 42
del zahl
print(zahl)
# Ausgabe: NameError: name 'name' is not defined
Erklärung zum Code: Die Variable zahl wurde zwar initialisiert, aber gleich wieder gelöscht. Daher führt print(zahl)
zu einem Fehler.
Der "Scope" einer Variablen bestimmt, wo diese Variable im Programm zugänglich ist. Globale Variablen werden außerhalb von Funktionen definiert und sind im gesamten Programm verfügbar. Lokale Variablen werden innerhalb von Funktionen definiert und sind nur dort zugänglich. Schau dir das mal im Beispiel an:
x_global = 10 # Globale Variable
def meine_funktion():
y_lokal = 5 # Lokale Variable
print(x_global)
# Ausgabe: 10
print(y_lokal)
# Ausgabe: 5
meine_funktion()
# Ausgabe: 10, 5
print(x_global)
# Ausgabe: 10
print(y_lokal)
# Fehler!
Erklärung zum Code: Der Befehl print(y_lokal)
führt zu einem Fehler, da y_lokal
nur innerhalb der Funktion meine_funktion()
definiert ist.
Nun könntest du denken, dass es ja dann besser ist einfach immer globale Variablen zu verwenden. Das ist falsch! Du solltest globale Variablen vermeiden und bevorzugt lokale Variablen verwenden. Schlimmstenfalls bist du ansonsten permanent dabei deine Variablen im Code zu suchen.
Zudem ist es immer sinnvoll Code zu Funktionen zusammenzufassen. Das macht den Code übersichtlicher. Hier solltest du Variablen verwenden, die nur innerhalb einer Funktion Gültigkeit haben. Das macht deinen Code viel einfacher wartbar, übersichtlicher und dient der Vermeidung von Fehlern.
Oft ist es sogar sinnvoll globale Variablen explizit als Argument an Funktionen zu übergeben. Einfach nur um die Lesbarkeit deines Codes zu verbessern! Übrigens: wie guter Code aussehen sollte, habe ich unter "Clean Code" näher erläutert.
In Python gibt es verschiedene Typen von Variablen. Hier sind einige der häufigsten:
x = 10
y = 10.5
True
oder False
kannst du logische Werte speichern.name = "Python"
liste = [1, 2, 3]
dictionary = {"key": "value"}
mein_set = {1, 2, 3}
Die einzelnen Datentypen erkläre ich nochmal viel genauer in meinem interaktiven Python Einstiegskurs. Der Kurs untergliedert sich in mehrere Abschnitte, z.B. findest du eine Einführung in Datentypen, ausführliche Infos zu Strings, sowie Genaueres zu Listen, Sets und Dictionaries.
Zu guter Letzt noch zwei Spezialfälle.
Manchmal benötigst du eine Variable, die noch keinen Wert hat. Beispielsweise wenn du einen definierten Default Wert für eine Variable verwenden willst oder musst. In Python kannst du dies durch Zuweisung von None
erreichen. None
ist ein spezielles Objekt in Python, das das Fehlen eines Wertes darstellt.
leere_var = None
Variablen, die mit einem Unterstrich (_
) beginnen, gelten als geschützt und sollten nur innerhalb ihrer eigenen Klasse oder ihres Moduls verwendet werden. Es handelt sich hierbei allerdings um eine Code-Konvention. Das heißt man kann von außen immer noch zugreifen, sollte dies aber besser nicht tun! Näheres dazu findest du in meinem Artikel zu Vererbung in Python.
_name = "geschuetzt"
Es handelt sich hierbei allerdings um eine Code-Konvention. Das heißt man kann von außen immer noch zugreifen, sollte dies aber besser nicht tun! Näheres dazu findest du in meinem Artikel zu Vererbung in Python.
Ich hoffe dieser Artikel hat dir geholfen, Variablen etwas besser zu verstehen. Wenn du noch mehr zu Variablen wissen möchtest und dein Verständnis von Python verbessern willst, dann kannst du dir ja mal meinen Python Einstiegskurs anschauen. Keine Sorge: Kostet nichts.