如何编写计算指定数值阶乘并写入指定文件的Python函数并修复错误代码
代码问题修正方案
原代码存在的问题
- 冗余的全局变量
filn = 100和函数参数重名,无实际作用可直接删除 - 函数内第一行
s = open(filn)直接覆盖了传入的阶乘数值参数s,导致后续阶乘计算找不到正确的数值 - 打开文件默认使用只读模式,且执行了
read()读取文件内容的操作,和「写入阶乘结果」的需求完全不符 - 阶乘计算逻辑完全错误:未初始化阶乘结果变量,循环内直接return导致第一次循环就终止运行,无法完成阶乘计算
- 缺少写入文件的核心逻辑,且函数有返回值不符合要求的
None返回设定
修正后的代码
def file(s:int, filn:str) -> None: # 计算阶乘 factorial = 1 for i in range(1, s+1): factorial *= i # 写入文件 with open(filn, 'w', encoding='utf-8') as f: f.write(str(factorial)) # 调用测试 file(10, 'test.out')
运行上述代码后,test.out文件内就会写入3628800的结果,符合需求。
内容的提问来源于stack exchange,提问作者jordan parker
相关产品推荐
相关产品推荐

