Python While Schleife schnall ich nicht
Hallo,
ich progge seit kurzem mit Python rum. Dabei hab ich ne Knick im Kopp bei folgenden Code:
while True:
zahl = input("Geben Sie eine Zahl ein: ")
ergebnis = 1
while zahl > 0:
ergebnis = ergebnis * zahl
zahl = zahl - 1
print "Ergebnis: ", ergebnis
Berrechnet wird die Fakultaet der eingegebenen Zahl.
Aber warum ??
Nach meiner Logik :
Ich gebe die Zahl 5 ein.
Da die Bedingung zahl > 0 ja immer besteht wieso kommt da jetzt 120 raus ??
Oder bin ich zu nuechtern und muss erst zur Tanke ?
Gruss
ich progge seit kurzem mit Python rum. Dabei hab ich ne Knick im Kopp bei folgenden Code:
while True:
zahl = input("Geben Sie eine Zahl ein: ")
ergebnis = 1
while zahl > 0:
ergebnis = ergebnis * zahl
zahl = zahl - 1
print "Ergebnis: ", ergebnis
Berrechnet wird die Fakultaet der eingegebenen Zahl.
Aber warum ??
Nach meiner Logik :
Ich gebe die Zahl 5 ein.
Oder bin ich zu nuechtern und muss erst zur Tanke ?
Gruss
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 232529
Url: https://administrator.de/contentid/232529
Ausgedruckt am: 04.12.2024 um 08:12 Uhr
3 Kommentare
Neuester Kommentar
Hallo Alchimedes
ich hab keine Ahnung von Python, aber bastla hat recht.
UND beim 2. Durchlauf ist ergebnis (wegen
Dann 20 * 3 = 60, danach 60 * 2 = 120. Beim nächsten Schleifendurchlauf ist zahl = 1, was am Ergebnis nichts mehr ändert und zuletzt 0, was nicht mehr in die Berechnung einfließt, da das Abbruchkriterium der Schleife erfüllt ist.
Grüße
rubberman
ich hab keine Ahnung von Python, aber bastla hat recht.
UND beim 2. Durchlauf ist ergebnis (wegen
ergebnis = ergebnis * zahl
) bereits 5 * 4, also 20.Dann 20 * 3 = 60, danach 60 * 2 = 120. Beim nächsten Schleifendurchlauf ist zahl = 1, was am Ergebnis nichts mehr ändert und zuletzt 0, was nicht mehr in die Berechnung einfließt, da das Abbruchkriterium der Schleife erfüllt ist.
Grüße
rubberman