Anfängerfrage, ursprünglichen Input wieder ausgeben lassen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
DeinError404
User
Beiträge: 4
Registriert: Sonntag 3. Mai 2020, 22:05

Hallo,

ich mache gerade meine ersten Schritte mit Python, daher ist die Frage vermutlich dämlich, aber ich komme da gerade einfach nicht weiter:

ich habe zur Übung ein kurzes Programm geschrieben, das von einem integer-input per while-schleife (das war die Aufgabe) die Fakultät berechnet. Das Programm läuft auch, allerdings würde ich am Ende gerne folgendes ausgeben lassen:

Angenommen beim Input wird "5" eingegeben, dann als Output "5! = 120".

Hier die paar Zeilen Code, die ich mir dafür überlegt habe:

Code: Alles auswählen

x = int (input ("Geben Sie eine Ganzzahl ein!"))
y = 1
z = 1
while x>1:
    x=x-1
    y=y+1
    z=z*y
print (x,"!=", z)

Die Fakultät der eingegebenen Zahl wird korrekt berechnet, allerdings wird "x" durch die while-schleife immer =1, sodass das Programm bei Input "5" als Output "1!=120" ausgibt.

Meine einfache Frage: Wie kann ich es einrichten, dass der ursprünglich eingegebene Wert für x auch wieder ausgegeben wird?

Bin dankbar für alle Tipps.
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Du musst die nur den ursprünglichen Wert in einer weiten Variable merken.
Die bessere Alternative ist es jedoch, x gar nicht zu ändern, indem Du z.B. x gar nicht nach unten zählst, sondern nur y bis x hoch. Und noch besser, die Berechnung in eine Funktion packst.

Code: Alles auswählen

x = int(input("Geben Sie eine Ganzzahl ein!"))
z = fakultaet(x)
print(f"{x}! = {z}")
DeinError404
User
Beiträge: 4
Registriert: Sonntag 3. Mai 2020, 22:05

Danke für die Antwort.
Das macht total viel Sinn und ich ärgere mich schwarz, dass ich nicht von selbst drauf gekommen bin!

Vielen Dank.
Antworten