Wie erklärt sich diese Python-Funktion[Fakultät berechnen]?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Schauen wir uns mal ein paar Beispielabläufe an:

Wenn n = 1 ist:

  • Im ersten Schritt wird ergebnis auf 1 gesetzt.
  • Für jedes i, das in range(2, 2) liegt, führen wir den Schritt ergebnis *= i durch. Aber range (2, 2) ist leer, da keine Zahl kleiner als 2 und zugleich größergleich 2 ist. Deswegen wird hier überhaupt nichts gemacht
  • Wir returnen ergebnis, welches nach wie vor den Wert 1 besitzt (und das ist richtig, denn 1! = 1).

Wenn n = 2 ist:

  • Im ersten Schritt wird ergebnis auf 1 gesetzt.
  • Für jedes i, das in range(2,3) liegt, führen wir den Schritt ergebnis *= i durch. Die einzige Zahl in range(2,3) ist i = 2. Also führen wir nur den Schritt ergebnis *= 2 durch, was dazu führt, das ergebnis nun den Wert 2 besitzt.
  • Wir returnen das Ergebnis (2! = 2 ist korrekt).

Wenn n = 3 ist:

  • [...]
  • [...] Die Zahlen in range(2,4) sind i = 2 und i = 3. D.h. wir führen erst ergebnis *= 2 durch, was ergebnis auf den Wert 2 bringt. Danach führen wir ergebnis *= 3 durch, was den Wert auf 6 bringt
  • Wir returnen das Ergebnis (3! = 6 ist korrekt).

Ruhrpotter4324 
Fragesteller
 16.09.2021, 14:48

DANKE! Toll, dass du dir so eine Mühe machst und das so aufschreibst, ich bin dir sehr dankbar. Ich lese gerade das Kapitel weiter, danach gehe ich das mal langsam durch und versuche es umzusetzen, aber du hast das sehr gut erklärt!

1