@BlackJack: Danke !
Ich habe den Code nicht irgendwo her, sonder aus dem Buch Python 3 (siehe Signatur, ok es ist von galileo aber das Problem lag hier wohl auf meiner Seite).
Scheinbar hatte ich schlichtweg ein Problem mit dem Thema Fakultät, sprich 1*2 = 2 und bei 3 = 1*2*3 = 6
Ich habe es mit normale Multiplikation verwechselt und kam durcheinander.
Das mit der Whileschleife 8also meine Vermutung oben) war natürlich im Nachhinein betrachtet völliger Mumpitz.
Nun ist alles wieder gut.
Vielen Dank.
Nachtrag: als beweis, dass ich das verstanden habe hier 3 Beispiele (kann ja sein, dass es ein anderer auch nicht versteht):
Beispiel 1 ( quasi die Erklärung ):
Code: Alles auswählen
while True:
zahl = int(input("Geben Sie eine Zahl ein: "))
if zahl < 0:
print("Negative Zahlen sind nicht erlaubt")
continue
ergebnis = 1
for i in range(2, zahl+1): # ergibt 2 bei eingabe einer 2 , ergebnis (1) = ergebnis (1) * i (2) , also 1 * 2 = 2
ergebnis = ergebnis * i
print("Ergebnis: ", ergebnis)
Beispiel 2:
Code: Alles auswählen
while True:
zahl = int(input("Geben Sie eine Zahl ein: "))
if zahl < 0:
print("Negative Zahlen sind nicht erlaubt")
continue
ergebnis = 1
for i in range(3, zahl+1): # ergibt bei eingabe einer 4 eine 12 denn ergebnis ist zahl+1 , also 3 * 4 = 12
ergebnis = ergebnis * i
print("Ergebnis: ", ergebnis)
Beispiel 3:
Code: Alles auswählen
while True:
zahl = int(input("Geben Sie eine Zahl ein: "))
if zahl < 0:
print("Negative Zahlen sind nicht erlaubt")
continue
ergebnis = 1
for i in range(6, zahl+1): # ergibt 336 bei eingabe einer 8 /// 6 + 1 = 7 , also 6 * 7 * 8 = 336
ergebnis = ergebnis * i
print("Ergebnis: ", ergebnis)