阶乘计算函数修正请求:需包含函数参数、返回语句及循环
阶乘函数代码修正
你的代码存在几个关键问题,导致无法正常运行:
- 开头直接把参数
n赋值为1,彻底覆盖了传入的输入值,函数根本无法获取需要计算阶乘的目标数字 for循环的range(1,i)中,i未提前定义,且正确的遍历范围应该是从1到输入的n(包含n),需写成range(1, n+1)- 存储乘积的变量不应使用
n,会和参数名混淆,建议换成result这类清晰的命名
修正后的代码如下:
def factorial(n): result = 1 # 初始化乘积为1,因为1乘任何数不改变结果 for i in range(1, n + 1): # 遍历1到n的所有整数 result = i * result # 累乘每一个数 return result
测试验证:
factorial(1)返回1,符合预期factorial(4)计算123*4=24,结果正确factorial(13)返回6227020800,与示例一致
内容的提问来源于stack exchange,提问作者siirlan
相关产品推荐
相关产品推荐

