Du weißt bereits, dass eine Variable eine Art beschrifteter Behälter ist, der einen sich ändernden Wert speichert. Eine Konstante ist ähnlich, hat aber einen wichtigen Unterschied: Sobald du ihren Wert festlegst, sollte sich dieser Wert während des gesamten Programms nicht mehr verändern. Stell dir eine Konstante wie die Lichtgeschwindigkeit vor — sie ist eine feste Tatsache, die das Programm kennen muss, aber nicht verändern soll.
Warum Konstanten verwenden?
Stell dir vor, du schreibst ein Spiel, in dem jedes Level maximal 100 Punkte bringt. Du könntest einfach überall 100 in deinen Code schreiben — aber was passiert, wenn du es später auf 150 ändern möchtest? Du müsstest jede einzelne Zeile durchsuchen und jede Stelle aktualisieren. Wenn du eine übersiehst, verhält sich dein Programm inkonsistent und der Fehler wird sehr schwer zu finden sein.
Mit einer Konstante definierst du den Wert einmal:
MAX_PUNKTE = 100
Jetzt verwendet jeder Teil deines Programms MAX_PUNKTE. Wenn du den Wert ändern möchtest, aktualisierst du nur eine Zeile und alle Berechnungen nutzen sofort den neuen Wert.
Python hat kein eingebautes const-Schlüsselwort wie einige andere Sprachen. Stattdessen folgen Programmierer einer Namenskonvention: Konstantennamen werden in GROSSBUCHSTABEN mit Unterstrichen zwischen den Wörtern geschrieben. Dies signalisiert jedem, der den Code liest, dass der Wert nicht verändert werden soll.
Konstanten in Python deklarieren
PI = 3.14159
SCHWERKRAFT = 9.81
MAX_LEBEN = 3
SCHULNAME = "Gymnasium Musterstadt"
# Konstanten in Berechnungen verwenden
umfang = 2 * PI * radius
Wenn du alle Konstanten oben in einer Datei platzierst, erkennt jeder Leser sofort, welche festen Werte das Programm verwendet.
Konstanten vs. Variablen
| Merkmal | Variable | Konstante |
|---|---|---|
| Wert kann sich ändern | Ja | Nein (per Konvention) |
| Schreibweise (Python) | schlangen_fall | GROSSBUCHSTABEN |
| Beispiel | punkte = 0 | MAX_PUNKTE = 100 |
| Zweck | Speichert veränderlichen Zustand | Speichert feste Konfiguration |
Wenn du eine Zahl mehr als einmal in deinem Code verwendest und sie eine Regel oder ein Limit aus der realen Welt darstellt, ist es fast immer besser, sie in eine Konstante umzuwandeln. Zahlen ohne Namen werden als magische Zahlen bezeichnet und gelten als schlechte Praxis.
Konstanten in anderen Sprachen
In Sprachen wie JavaScript verwendest du das Schlüsselwort const, um sicherzustellen, dass ein Wert nicht neu zugewiesen werden kann:
const MAX_PUNKTE = 100;
const PI = 3.14159;
Wenn du versuchst, ein const in JavaScript zu ändern, wirft das Programm einen Fehler. Python verlässt sich darauf, dass Programmierer die GROSSBUCHSTABEN-Konvention einhalten, anstatt sie automatisch durchzusetzen.
In Python hindert dich technisch gesehen nichts daran, einen GROSSBUCHSTABEN-Namen neu zuzuweisen — die Sprache wirft keinen Fehler. Die Konvention funktioniert nur, wenn alle Teammitglieder sie respektieren. In professionellem Code können Werkzeuge namens Linter dich warnen, wenn du versehentlich eine Konstante änderst.
Praktisches Beispiel
# Konstanten am Anfang der Datei definieren
SCHALLGESCHWINDIGKEIT = 343 # Meter pro Sekunde
SEKUNDEN_PRO_MINUTE = 60
MINUTEN_PRO_STUNDE = 60
# Konstanten im Programm verwenden
echozeit = 2.5 # Sekunden für den Schall hin und zurück
entfernung = (SCHALLGESCHWINDIGKEIT * echozeit) / 2
print(f"Das Objekt ist {entfernung} Meter entfernt.")
Dieser Code ist leicht zu verstehen und leicht zu aktualisieren, wenn du einen der festen Werte jemals ändern möchtest.
Übungsaufgaben
Ein Programmierer schreibt BILDSCHIRMBREITE = 1920 am Anfang seiner Datei. Später schreibt er BILDSCHIRMBREITE = 800. Welches Problem verursacht das?
Antwort anzeigen
Warum ist es besser, MAX_VERSUCHE = 3 zu schreiben und MAX_VERSUCHE im Code zu verwenden, anstatt die Zahl 3 jedes Mal direkt einzutippen?