Kurs:Python/Material/Scripts/Fakultät

Das Script berechnet die Fakultät einer natürlichen Zahl.

def fakultaet(wert):
    if wert == 0:
        return 1
    else:
        return wert * fakultaet( wert -1)

# Startwert
n = 1

print  '\n', "Programm zur Berechnung der Fakultaet einer natuerlichen Zahl n"

while n != 0:
    print '\n', "Geben Sie 0 ein, um das Programm zu beenden!"    
    n = input ("Geben Sie eine natuerliche Zahl ein: ")
    
    if n < 0:
        print "Das ist keine natuerliche Zahl."
    elif n == 0:
        print "Das Programm wurde beendet."
        break
    else:
        print "Die Fakultaet von " + str(n) + " ist " + str (fakultaet(n)) + "."

Alternative Lösung

Bearbeiten
def fakultaet (n):
  if type(n) != type(1):
    print "Factorial is only defined for integers."
    return -1
  elif n < 0:
    print "Factorial is only defined for positive integers."
    return -1
  elif n == 0:
    return 1
  else:
    return n * fakultaet(n-1)

Funktioniert nur in der Konsole :-(