跳到主要内容

Python 程序找到一个数字的阶乘

要理解这个例子,你需要了解以下Python编程相关主题:

数字的阶乘是从1到该数字所有整数的乘积。

例如,6的阶乘是 1*2*3*4*5*6 = 720。负数没有阶乘定义,而零的阶乘为一,0! = 1

使用循环计算数字的阶乘

# Python 程序:用户提供数字,计算阶乘。
# 更改数值以得到不同的结果
num = 7

# 从用户那里输入
#num = int(input("输入一个数字:"))
factorial = 1

# 检查数字是负数、正数还是零
if num < 0:
print("抱歉,负数没有阶乘")
elif num == 0:
print("0的阶乘是 1")
else:
for i in range(1, num + 1):
factorial = factorial * i
print(num, "的阶乘是", factorial)

输出

7的阶乘是 5040

注意: 为了测试不同的数字,更改 num 的值。

在这里,要找到阶乘的数字存储在 num 中,我们使用 if...elif...else 语句检查数字是负数、零还是正数。如果数字是正数,我们使用 for 循环和 range() 函数来计算阶乘。

| 迭代 | factorial*i (返回值) | | i = 1| 1 _ 1 = 1 | | i = 2| 1 _ 2 = 2 | | i = 3| 2 _ 3 = 6 | | i = 4| 6 _ 4 = 24 | | i = 5| 24 _ 5 = 120 | | i = 6| 120 _ 6 = 720 | | i = 7| 720 * 7 = 5040 |

使用递归计算数字的阶乘

# Python 程序:用户提供数字,使用递归计算阶乘
def factorial(x):
"""这是一个递归函数
用来找出一个整数的阶乘"""

if x == 1:
return 1
else:
# 对函数的递归调用
return (x * factorial(x - 1))

# 更改数值以得到不同的结果
num = 7

# 从用户那里输入
# num = int(input("输入一个数字:"))
# 调用 factorial 函数
result = factorial(num)
print(num, "的阶乘是", result)

在上面的例子中,factorial() 是一个递归函数,它调用自身。这里,该函数将通过减少 x 的值来递归地调用自己。

要了解递归的工作原理,请访问Python 递归