最简单的方法

#通过用户输入数字计算阶乘#
获取用户输入的数字
num = int(input("请输入一个数字: "))
factorial = 1
#查看数字是负数,0或 正数
if num < 0:
print("抱歉,负数没有阶乘")
elif num == 0
or num == 1:
print("0的阶乘为1")
else:
for i in range(1,num + 1):
factorial = factorial*i
print("%d的阶乘为%d" %(num,factorial))
使用reduce()函数
form functools import reduce
num = int(input("请输入一个数字: "))
factorial = 1
#查看数字是负数,0或 正数
if num < 0:
print("抱歉,负数没有阶乘")
elif num == 0 or num == 1:
print("0的阶乘为1")
else:
print(reduce(lambda x,y:x*y,range(1,num+1)))
用函数递归
def factorial(num):
if num < 0:
print("抱歉,负数没有阶乘")
elif num == 0 or num == 1:
return 1
else:
return (num*factorial(num-1))
numone = int(input("请输入一个数字: "))
print(factorial(numone))