num = float(input('Enter a positive number: ')
if (num < 0):
print("Sorry, factorial does not exist for negative numbers")
elif (num == 0):
print("The factorial of 0 is 1.")
else:
for i in range(1,num + 1):
factorial = factorial * i
print("The factorial of",num,"is",factorial)
答案 0 :(得分:0)
这里有很多错误。
第一行缺少结束括号。
使用int比使用float更合适。
第8行中的变量factorial未初始化,但随后 引用自己。
请将其与以下代码进行比较:
def factorial(x):
if x == 1 or x == 0:
return 1
else:
return x * factorial(x-1)
num = int(input('Enter a positive number: '))
if (num < 0):
print("Sorry, factorial does not exist for negative numbers")
else:
fac = factorial (num)
print("The factorial of " + str(num) + " is " + str(fac))
我已将阶乘的计算放入一个递归调用的函数中(你可以学习的东西)。