このPython関数では、ユーザー入力を非整数値(小数点以下の桁数など)を指定しないように処理し、それ以外の場合は例外を処理します。Python:階乗法への入力の制御
# a function that takes an integer and returns its factorial
def factorial(x):
try:
if x == 0:
return (0)
else:
pro = 1
for i in range(1, x + 1):
pro *= i
except(ValueError, TypeError):
# this part of the code is supposed to handle exception for invalid input5
print("an error happened")
return (pro)
# calling the function with validated input
# warning!!! this program my take longer time as your input get larger
num = int(input("Enter a positive integer:"))
if num >= 0:
print("\n Factorial of " + str(num) + " = " + str(factorial(num)))
else:
print("Factorial is operated only on positive number");
0の階乗は1であり、コードでは0ではありません。そうでなければ、正確にあなたの質問は何ですか? –