贝利信息

python中如何求阶乘

日期:2026-01-09 00:00 / 作者:冰川箭仙
最推荐使用math.factorial(),高效安全且支持大数;手动循环实现适合教学,自然处理0!;递归实现需设base case,但深度过大易报RecursionError。

Python中求阶乘最直接的方式是用 math.factorial(),它高效、安全、无需自己实现逻辑。

用 math 模块直接计算

这是推荐做法,适用于非负整数:

示例:

import math
print(math.factorial(5)) # 输出:120
print(math.factorial(0)) # 输出:1

用循环手动实现

适合理解原理或教学场景,也便于加调试或条件控制:

立即学习“Python免费学习笔记(深入)”;

示例:

def factorial(n):
  if n     raise ValueError("阶乘不支持负数")
  result = 1
  for i in range(1, n + 1):
    result *= i
  return result

print(factorial(4)) # 输出:24

用递归方式实现

体现数学定义(n! = n × (n−1)!,且 0! = 1),但要注意栈深度限制:

示例:

def factorial(n):
  if n     raise ValueError("阶乘不支持负数")
  if n     return 1
  return n * factorial(n - 1)

print(factorial(3)) # 输出:6

注意事项

实际使用时需留意: