If-Bedingung

Ein wichtiges Werkzeug eines Programmierers ist die Fallunterscheidung. Dazu bietet quasi jede Sprache eine if-Bedingung (manchmal auch when). Die meisten Sprachen erwarten den Anweisungsblock der if-Bedingung in geschweiften Klammern - Python will eine bestimmte Einrückung.

If untersucht die Bedingung auf Richtigkeit. Sie geben beim Aufruf einer Fallunterscheidung immer eine Bedingung an, die dann vom Programm auf Richtigkeit untersucht wird. Geben Sie zum Beispiel als Bedingung 1==2 an, so ergibt das immer false und der Anweisungsblock wird nie ausgeführt. Python will auch ein doppeltes IstGleich um sicherzustellen, dass Sie einen Vergleich und keine Zuweisung wollen. Beachten Sie dass Python Zuweisungen (also a=b) innerhalb einer Schleifenbedingung nicht zulassen wird.

So sieht prinzipiell in Python die If-Bedingung aus: (weiter unten folgt ein konkretes Beispiel)

if <Bedingung>:
    <Anweisung 1>
    <Anweisung 2>
elif <Bedingung 2>:
    <Anweisung 3>
    <Anweisung 4>
...
else:
    <Ansonsten>

Gelangt das Programm an das erste if, dann überprüft es die Richtigkeit der Bedingung. Ist die Bedingung zu true auswertbar (z.B. 1=1) dann werden Anweisung 1 und 2 (also der Anweisungsblock ausgeführt). Ist das nicht der Fall, wird Bedinung 2 geprüft. Stimmt die, wird der darunter stehende Anweisungsblock ausgeführt. Gilt keine der Bedingungen kann ein else-Block ausgeführt werden. elif und else können auch weggelassen werden. Es ist nicht beschränkt wie viele Anweisungen in einem Anweisungsblock stehen.

Beachten Sie die Einrückung, die Python zwingend vorschreibt. Dabei müssen die Anweisungen, die innerhalb des gleichen Blockes stehen IMMER gleich weit eingerückt sein.

Ein konkretes Beispiel:

name=raw_input()
if name=="norbert":
    print "Hallo Norbert"
elif name=="sascha":
    print "Hallo Sascha, gib bitte noch dein Passwort ein: "
    pswd=raw_input()
    if pswd=="1234":
        print "Richtiges Passwort"
    else
        print "nein"
elif name=="klaus":
    print "Du bist der Klaus, dir vertraue ich."
else:
    print "Du bist weder Klaus, noch Sascha, noch Norbert. Das ist schlecht."

Wie Sie sehen können Sie if-Bedingungen auch schachteln. Dann werden die weiteren Anweisungsblöcke weiter eingerückt. raw_input holt sich Ihre Tastatureingaben bis zu Enter drücken.