如何修正write_nums函数写入nums.txt时的多余行问题?
问题解决方法
问题根源
当前代码存在两个核心问题:
- 硬编码了循环范围为
range(1,11),既没有使用传入的参数n,若实际运行时误写为错误范围(比如range(1, n+2)),就会多输出数字11。 - 未满足每行「数字 数字」的格式要求,当前每行仅写入单个数字。
修正后的代码
def write_nums(n): with open("nums.txt", 'w') as fp: # 遍历前n个正整数,range(1, n+1)生成1到n的整数序列 for i in range(1, n+1): # 按要求格式写入每行:数字 + 四个空格 + 数字 + 换行符 fp.write(f"{i} {i}\n") if __name__ == "__main__": write_nums(10)
关键修正点
- 将固定循环范围改为
range(1, n+1),由参数n控制循环次数,当传入10时正好生成10个数字,不会出现多余的11。 - 调整写入格式,确保每行输出「数字 数字」的结构,同时用
write()方法更简洁地处理单行写入。 - 移除了多余的
pass语句,函数体内已有执行代码,无需占位符。
内容的提问来源于stack exchange,提问作者mo10
相关产品推荐
相关产品推荐

