最简单的方法是使用 math.factorial (在 Python 2.6 及更高版本中可用): import math math.factorial(1000) 如果你想/必须自己写,你可以使用迭代方法: def factorial(n): fact = 1 for num in range(2, n + 1): fact *= num return fact 或 递归 方法: def factorial(n): if n < 2: return 1 else: return n * factorial(n-1) 请注意, 阶乘函数 仅为正整数定义,因此您还应该检查 n >= 0 和 isinstance(n, int) 。如果不是,请分别提高 ValueError 或 TypeError 。 math.factorial 会为您解决这个问题。 原文由 schnaader 发布,翻译遵循 CC BY-SA 4.0 许可协议
最简单的方法是使用
math.factorial
(在 Python 2.6 及更高版本中可用):如果你想/必须自己写,你可以使用迭代方法:
或 递归 方法:
请注意, 阶乘函数 仅为正整数定义,因此您还应该检查
n >= 0
和isinstance(n, int)
。如果不是,请分别提高ValueError
或TypeError
。math.factorial
会为您解决这个问题。