Python编写factorial_list函数返回阶乘列表的代码修复
Python阶乘列表函数修复方案
现存代码问题
- 缩进层级错误:计算单个数阶乘的
for循环没有嵌套在遍历输入列表的外层循环中,运行时仅会计算列表最后一个元素的阶乘,还会逐行打印中间计算过程 - 结果逻辑缺失:没有创建专门的结果列表存储每个元素的阶乘值,也没有配置函数返回逻辑,无法输出要求的列表格式结果
修复方法
- 函数定义后首先初始化空列表,用于按顺序存储每个元素的阶乘计算结果
- 调整代码缩进:将计算单个数字阶乘的内层
for循环整体移入遍历输入列表的外层循环代码块内,保证列表中每个元素都能执行一次阶乘计算 - 每完成一个元素的阶乘计算,就将计算结果追加到结果列表中
- 所有元素遍历计算完成后,通过
return语句返回最终的结果列表
修正后可运行代码
def factorial_list(Arr): res = [] # 外层遍历输入列表的每个元素 for num in Arr: fact_val = 1 # 内层循环计算当前元素的阶乘,注意缩进属于外层循环块 for i in range(1, num + 1): fact_val *= i res.append(fact_val) # 返回组装完成的结果列表 return res # 示例测试 if __name__ == "__main__": Arr = [1,2,3,4,5] Op = factorial_list(Arr) print(Op) # 运行输出 [1, 2, 6, 24, 120]
补充说明
- Python通过缩进划分代码块归属,同层级代码需保持缩进一致,内层逻辑相对外层逻辑需增加固定缩进(通常为4个空格)
- 上述实现默认传入的列表元素均为非负整数,如果需要兼容非法输入可以自行添加参数校验逻辑
内容的提问来源于stack exchange,提问作者Yush
相关产品推荐
相关产品推荐

