贝利信息

如何编写一个函数,计算并返回从0到指定数值的所有阶乘值列表

日期:2026-01-15 00:00 / 作者:花韻仙語

该教程讲解如何定义一个函数,接收单个整数参数n,计算并返回包含0!到n!的完整阶乘列表,同时修正原始代码中的语法错误、逻辑偏差(如遗漏0!)和命名规范问题。

要实现 RangeFactorial(10) 这样的调用方式,并返回 [0!, 1!, 2!, ..., 10!] 的列表,需明确两点:

  1. 阶乘函数(factorial(n))应正确处理边界情况(特别是 0! = 1);
  2. 范围阶乘函数(推荐命名为 range_factorial(n),遵循 Python 命名规范)负责遍历 0 到 n(含),逐个调用 factorial 并收集结果。

以下是完整、可运行的实现

def factorial(n):
    """计算非负整数 n 的阶乘"""
    if n < 0:
        raise ValueError("阶乘未定义于负数")
    result = 1
    for x in range(1, n + 1):  # 当 n==0 时,range(1, 1) 为空,循环不执行,result 保持为 1
        result *= x
    return result

def range_factorial(n):
    """返回从 0! 到 n! 的阶乘值列表(长度为 n+1)"""
    return [factorial(i) for i in range(n + 1)]  # 使用列表推导式,简洁高效

# 示例调用
print(range_factorial(5))
# 输出: [1, 1, 2, 6, 24, 120] ← 对应 0!, 1!, 2!, 3!, 4!, 5!

print(range_factorial(10))
# 输出包含 11 个元素的列表,首项为 1(0!),末项为 3628800(10!)

关键改进说明:

⚠️ 注意事项: