Seite 1 von 1
Frage zu einem Beispiel
Verfasst: Freitag 1. August 2008, 21:05
von Crystalix
Hallo,
also ich habe vorgestern angefangen Python zu lernen, habe sonst garkeine Programmier Erfahrung. Und habe mein erstes Problem in einem Beispiel wird die while Schleife erklärt, durch dieses Programm kann man die Fakulität einer Zahl berechenen.
Nur leider verstehe ich die Anweisungen zur Berechnung der Fakulität nicht, soll heißen ich verstehe nicht warum die Fakulität mit den Anweisungen berechnet wird.
Code: Alles auswählen
while True:
zahl = input("Geben Sie eine Zahl ein: ")
ergebnis = 1
while zahl > 0:
ergebnis = ergebnis * zahl
zahl = zahl - 1
print "Ergebnis: ", ergebnis
Wäre nett wenn mir das jemand erklären kann.
Lg
Crystalix
Verfasst: Freitag 1. August 2008, 21:34
von Pekh
Wie man die Fakultaet einer Zahl berechnet, weisst du aber?
Die aeussere while-Schleife sorgt lediglich dafuer, dass du bis in alle Ewigkeit nach neuen Zahlen gefragt wirst, fuer die das Programm die Fakultaet berechnen soll.
Der Rest ist eigentlich nur noch die Umsetzung der Definition. Am Beispiel:
Verfasst: Freitag 1. August 2008, 21:37
von BlackVivi
Aber das Beispiel ist schon ziemlich doof... input ist doof, nicht mit Funktionen arbeiten ist doof.... Fördert alles schon wieder einen Programmierstil, der nicht wirklich das Wahre ist.
Verfasst: Freitag 1. August 2008, 21:50
von Crystalix
Wie man die Fakultaet einer Zahl berechnet, weisst du aber?
Ja klar, z.B. 3 da berechnet man die Fakultät indem man 1 * 2 * 3 rechnet.
Vielleicht hast du meine Frage falsch verstanden, ich weis das die äußere while Schleife dazu da ist das, dass Program unendliche lang nach neuen Zahlen fragt.
Ich wollte eher wissen was die 3,4,5 und 6 Zeile macht also durch welche Anweisung die Fakultät berechnet wird.
Lg
Crystalix
Verfasst: Freitag 1. August 2008, 21:54
von numerix
Crystalix hat geschrieben:Ich wollte eher wissen was die 3,4,5 und 6 Zeile macht also durch welche Anweisung die Fakultät berechnet wird.
Dann geh doch die while-Schleife für eine Beispielzahl einmal Schritt für Schritt durch (in Gedanken meine ich, nicht auf dem Rechner laufen lassen) und notiere dir jeweils auf einem Zettel, welche Werte sich dabei nach und nach für ergebnis und zahl ergeben.
Das sollte dann eigentlich die Erleuchtung bringen ...
Verfasst: Freitag 1. August 2008, 21:57
von DasIch
Code: Alles auswählen
def fak(zahl):
if zahl == 0:
return 1
else:
return zahl * fak(zahl - 1)
while True:
fak(int(raw_input("Geben Sie eine Zahl ein: ")))
Das finde ich schöner

Verfasst: Freitag 1. August 2008, 22:06
von Crystalix
Ich hab jetzt mal als Beispiel 4 genommen dann müsste es ja heißen wenn man die Zahl einsetzt,
beim nächsten Durchlauf dann,
usw.
Ich versteh es irgentwie nicht so richtig.
Lg
Crystalix
Verfasst: Freitag 1. August 2008, 22:13
von DasIch
Du kannst das nicht direkt auf die Mathematik übertragen. Variablen sind in der Mathematik unveränderbar, in Python sind sie es.
Verfasst: Freitag 1. August 2008, 22:24
von Crystalix
Also habs jetzt endlich verstanden, DasIch hat mir den Anstoß dazu gegeben. Danke nochmal an alle für die schnelle Hilfe.
Lg
Crystalix