Kurs:Python/LG/Py2009/Kontrollstrukturen

Aus Wikiversity
< Kurs:Python‎ | LG‎ | Py2009

Kontrollstrukturen[Bearbeiten]

Fallunterscheidungen[Bearbeiten]

Kapitel

if x == 1: 
    print "x hat den Wert 1" 
elif x == 2: 
    print "x hat den Wert 2" 
else: 
    print "Fehler: Der Wert von x ist weder 1 noch 2"

Conditional expressions[Bearbeiten]

x = 3
y = 24

print ( x + 4 if x == 3 else y-x )

Schleifen[Bearbeiten]

Kapitel

continue-Anweisung[Bearbeiten]

while True: 
    zahl = input("Geben Sie eine Zahl ein: ") 
    ergebnis = 1 
    while zahl > 0: 
        ergebnis = ergebnis * zahl 
        zahl = zahl - 1 
    print "Ergebnis: ", ergebnis
  • Wenn die Schleife (1) immer True ist, wie kann dann die Schleife verlassen werden?
  • Die Fakultät von 0 ist 1. Aber: Fakultät. Die Fakultät ist nur für ganze Zahlen >= 1 definiert.
Verbesserte Version mit continue-Anweisung
while True: 
    zahl = input("Geben Sie eine Zahl ein: ") 
    if zahl < 0: 
        print "Negative Zahlen sind nicht erlaubt" 
        continue 
    ergebnis = 1 
    while zahl > 0: 
        ergebnis = ergebnis * zahl 
        zahl = zahl - 1 
    print "Ergebnis: ", ergebnis
Meine verbesserte Version
while True: 
    zahl = input("Geben Sie eine Zahl ein: ") 
    if zahl <= 0: 
        print "0 bzw. negative Zahlen sind nicht erlaubt." 
        continue 
    """"Wie kann ich abfangen, dass keine Gleitkommazahl eingegeben wird?
        print "Ungerade Zahlen sind nicht erlaubt."
        continue
    Hier fehlt eine weitere if-Anweisung."""
    ergebnis = 1 
    while zahl > 0: 
        ergebnis = ergebnis * zahl 
        zahl = zahl - 1 
    print "Ergebnis: ", ergebnis

Es fehlt eine Überprüfung, ob die eingegebene Zahl eine Gleitkommazahl ist. Für Gleitkommazahlen ist die Fakultät nicht definiert.