Faktorielle Berechnung in Python

Sahil Bhosale 30 Januar 2023
  1. Berechnen der Fakultät einer Zahl mithilfe der Iteration in Python
  2. Berechnen der Fakultät einer Zahl mit Rekursion in Python
  3. Berechnen der Fakultät einer Zahl mit der Funktion math.factorial() in Python
Faktorielle Berechnung in Python

Eine Fakultät einer Zahl ist das Produkt aller positiven ganzen Zahlen, die kleiner oder gleich dieser Zahl sind. Zum Beispiel ist die Fakultät von 5 das Produkt aller Zahlen, die kleiner und gleich 5 sind, d.h. 5 * 4 * 3 * 2 * 1, was gleich 120 ist. Daher ist die Fakultät der Zahl 5 120.

Lassen Sie uns nun eine Python-Funktion schreiben, um die Fakultät einer Zahl zu berechnen. Es gibt zwei Möglichkeiten, wie wir ein faktorielles Programm in Python schreiben können, zum einen mit Hilfe der Iterationsmethode und zum anderen mit Hilfe der rekursiven Methode.

Berechnen der Fakultät einer Zahl mithilfe der Iteration in Python

Das faktorielle Programm mit der Iterationsmethode ist nichts anderes als die Verwendung von Schleifen in unserem Programm wie die for-Schleife oder die while-Schleife. Beim Schreiben eines iterativen Programms für die Fakultät in Python müssen wir drei Bedingungen überprüfen.

  1. Die gegebene Zahl ist negativ: Wenn die Zahl negativ ist, dann sagen wir einfach, dass wir die Fakultät nicht finden können, weil die Fakultät einer negativen Zahl nicht existiert.
  2. Gegebene Zahl ist Null: Wenn die Zahl Null ist, dann werden wir einfach 1 ausgeben, weil die Fakultät einer Zahl Null 1 ist.
  3. Gegebene Zahl ist positiv: Wenn die Zahl positiv ist, dann werden wir nur ihre Fakultät finden.
def factorial(num):
    if num < 0:
        print("Factorial of negative num does not exist")

    elif num == 0:
        return 1

    else:
        fact = 1
        while num > 1:
            fact *= num
            num -= 1
        return fact


num = 5

print("Factorial of", num, "is", factorial(num))

Ausgabe:

Factorial of 5 is 120

Berechnen der Fakultät einer Zahl mit Rekursion in Python

Rekursion ist nichts anderes als der wiederholte Aufruf der gleichen Funktion. Wenn wir die Rekursion verwenden, können wir weniger Codezeilen schreiben, die viel lesbarer sind als der Code, den wir mit der iterativen Methode schreiben werden.

Immer, wenn wir eine Rekursionsfunktion aufrufen, wird ein Rekursionsstapel im Speicher angelegt. Dieser Rekursionsstapel hat etwas, das Programmzähler genannt wird, der festhält, welche Anweisung als nächstes ausgeführt werden soll, nachdem die Rekursionsfunktion ihre Ausführung beendet hat.

def factorial(n):
    return 1 if (n == 1 or n == 0) else n * factorial(n - 1)


num = 5
print("Factorial of", num, "is", factorial(num))

Ausgabe:

Factorial of 5 is 120

Berechnen der Fakultät einer Zahl mit der Funktion math.factorial() in Python

Wollen Sie eine Fakultät-Funktion in nur einer Zeile schreiben? Sieht das für Sie unmöglich aus? Es gibt eine Möglichkeit, eine faktorielle Funktion in nur einer Zeile Code zu schreiben. Dies kann mit Hilfe des math-Moduls gemacht werden. Innerhalb des Moduls math gibt es eine Funktion factorial, um die Fakultät einer Zahl zu berechnen.

Sie müssen diese Funktion aus dem math-Modul importieren, sie in Ihrem Programm aufrufen und die Zahl übergeben, deren Fakultät Sie berechnen möchten. Siehe das folgende Beispiel.

from math import factorial

print("Factorial is", factorial(5))

Ausgabe:

Factorial is 120
Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

Verwandter Artikel - Python Math