1 Programmverzweigungen (Bedingungen)
Es gibt Situationen, in denen es wünschenswert ist, dass ein Teil eines Programms nur ausgeführt wird, wenn eine bestimmte Voraussetzung erfüllt ist.
Als Beispiel dafür mag die Blume von vergangener Woche dienen. Wenn eine Blume gezeichnet werden soll, welche abwechslungsweise dunkelblaue und hellblaue Blütenblätter hat.
Diese Blume wurde ebenfalls mit einer for
-Schlaufe gezeichnet. Allerdings wurde abwechslungsweise ein dunkelblaues und ein hellblaues Blütenblatt verwendet.
Abwechslungsweise kann auch als wenn eine gerade Zahl kommt bzw. wenn eine ungerade Zahl kommt verstanden werden. Kommen beim Zählen doch abwechslungsweise gerade und ungerade Zahlen. Übersetzt in die for i in range(12)
-Schlaufe heisst das, immer wenn der Wert in der Variabel i
eine gerade Zahl ist dann soll ein dunkelblaues Blüentblatt verwendet werden und immer wenn der Wert der Variabel i
eine ungerade Zahl ist, soll ein hellblaues Blütenblatt verwendet werden.
In Python verwendet man dazu die folgende Syntax:
Das heisst, immer wenn die BEDINGUNG
erfüllt ist (wenn sie wahr
) ist, werden die eingerückten Anweisungen ausgeführt. In allen anderen Fällen werden die nach else:
eingerückten Anweisungen ausgeführt.
Für die Zeichnung der Blume bedeutet das also, dass immer wenn i
eine gerade Zahl ist, soll ein dunkelblaues Blütenblatt verwendet werden. Eine gerade Zahl ist dabei jede Zahl, die ohne Rest durch zwei Teilbar ist.
Ob dies der Fall ist, kann mit dem Modulo Operator (%
) getestet werden (vgl. Abschnitt Vorbemerkungen: Python als Rechner.) Eine Zahl ist ohne Rest durch zwei Teilbar, wenn gilt
\[ i\ mod\ 2 = 0 \]
Übersetzt nach Pyhton schreibt sich das als
Für die Prüfung, ob das Resultat \(0\) ist, wird dabei ==
verwendet. Dies rührt daher, dass das einfache gleichheitszeichen bereits als Operator für die Zuweisung eines Wertes zu einer Variabel besetzt war.
Der Vollständige Code für die Abwechslungsweise Verwendung eines dunkelblauen bzw. eines hellblauen Blütenblattes sieht folgendermassen aus:
if i % 2 == 0:
blume = kombiniere(blume, bluetenblatt_dunkel)
else:
blume = kombiniere(blume, bluetenblatt_hell)
Falls mehr als zwei Fälle unterschieden werden müssen, lautet die Python Syntax
Dabei können beliebig viele elif
Bedingungen wiederholt werden.
Als Bedingung kann nicht nur eine Gleichheit überprüft werden. Es ist auch möglich grösser >
, grösser oder gleich >=
, kleiner <
und kleiner oder gleich <=
zu prüfen.