Einstieg in Python
Programmieren lernen in fünf Schritten
Bedingte Codeausführung
Zur Ablaufsteuerung von Programmen bietet Python alle geläufigen Kontrollstrukturen an. Die if-Anweisung für Fallunterscheidungen beispielsweise sieht in Python so aus:
if bedingung1:
anweisungen1
elif bedindung2:
anweisungen2
else:
anweisungen3
Falls der Ausdruck bedingung1 "wahr" ist, werden die anweisungen1 (es kann natürlich auch eine einzelne Anweisung sein) ausgeführt und das if-Konstrukt nicht weiter ausgewertet.
Als "falsch" zählen numerische Null-Werte (0, 0L, 0.0, 0.0+0.0j), der boolschen Wert False, leere Zeichenketten, leere Listen, leere Tupel, leere Dictionaries sowie der spezielle Wert None. Alle anderen Werte betrachtet Python als "wahr". Benutzerdefinierte Objekte (sie kommen in einer späteren Folge zur Sprache) "entscheiden" selbst, wann sie "wahr" oder "falsch" sind.
Ist bedingung1 falsch, aber bedingung2 wahr, werden die anweisungen2 ausgeführt. Trifft keine der vorherigen Bedingungen zu, kommen die anweisungen3 im else-Zweig zur Ausführung. Mehrere elif-Zweige sind möglich, elif und/oder else-Zweig dürfen aber auch fehlen.
Bedingungsausdrücke brauchen Sie nicht einzuklammern; nach den Bedingungen und nach else muss vielmehr ein Doppelpunkt stehen. Numerische Vergleiche lassen sich bei Bedarf zusammenfassen, wie in if 1 <= x < 2:.
Richtig eingerückt
Anweisungsblöcke schließt man in Python nicht wie in vielen anderen Sprachen in geschweifte Klammern oder Schlüsselwörter ein. Stattdessen erkennt Python an der Einrückung der Anweisungen, welche zu einem Block gehören. Das gilt nicht nur für if-Anweisungen, sondern generell, also auch bei Schleifen- oder Funktionsrümpfen.
Der Hintergrund dieses Ansatzes ist, dass Code ohnehin eingerückt werden sollte, um die Struktur zu verdeutlichen und den Code lesbarer zu machen. Ein angenehmer Nebeneffekt der Python-Methode: Sie macht Blockbegrenzer überflüssig und den Code etwas kürzer und übersichtlicher. Außerdem beseitigt diese Vorgehensweise potenzielle Quellen für Fehler und Missverständnisse, wie sie in C vorkommen – etwa, wenn zwei aufeinander folgende Anweisungen eingerückt sind, aber die geschweiften Klammern fehlen.
Durch einen Backslash am Zeilenende oder noch nicht abgeschlossene Teilausdrücke (Klammerung) erkennt Python, dass sich eine Anweisung über die Zeilengrenze hinweg fortsetzt. Hier ein konkretes Beispiel für Anweisungsblöcke:
if x > 1:
print "x größer als 1"
groesser()
elif x == 1:
print "x gleich 1"
gleich()
else:
print "x kleiner als 1"
kleiner()
Hier gehören print "x größer als 1" und der Funktionsaufruf groesser() zu einem Block und werden nacheinander ausgeführt, falls x größer als Eins ist. Der Python Style Guide [13] empfiehlt, pro Einrückungsebene vier Leerzeichen zu verwenden; Programmiereditoren tun das normalerweise automatisch oder lassen sich entsprechend konfigurieren.
Ab der kommenden Python-Version 2.5 soll es auch eine Fallunterscheidung in Form eines Ausdrucks geben, ähnlich dem ternären Operator ?: in C. Dabei weicht aber die Reihenfolge der Operanden von der C-Notation ab:
x = Falls_wahr if Bedingung else Falls_falsch



