如何调用等差数列判断函数遍历外部TXT文件逐行输出校验结果
实现步骤及代码
1 先修正现有代码的两处错误
- 等差数列判断函数形参名不一致:原函数定义的形参是
l,内部使用的变量是li,需要统一命名 - 文件读取部分变量名不匹配:打开的文件对象赋值给了
fileWithLists,调用readlines()时误用了不存在的filename变量
2 后续逻辑实现
读取到所有行之后,逐行处理即可,在每行转换成整数列表后调用arithmetic函数获取判断结果,最后按要求输出。
完整可运行代码如下:
# 修正后的等差数列判断函数 def arithmetic(li): a = li[1] - li[0] for index in range(len(li) - 1): if li[index + 1] - li[index] != a: return False return True # 修正后的文件读取代码 fileWithLists = open(input("File name: ")) rows = fileWithLists.readlines() fileWithLists.close() # 逐行处理并输出结果 for row in rows: # 去除首尾空白和换行符,保留原始行内容用于输出 original_row = row.strip() # 把行内容分割转换为整数列表 num_list = list(map(int, original_row.split())) # 此处调用判断函数 is_arithmetic = arithmetic(num_list) # 按要求格式输出 print(f"{original_row} {is_arithmetic}")
可选健壮性优化
如果文件中存在少于2个数字的行,可以在arithmetic函数开头增加长度判断,避免索引报错:
def arithmetic(li): if len(li) < 2: # 长度不足2默认是等差数列,可按需调整返回值 return True a = li[1] - li[0] for index in range(len(li) - 1): if li[index + 1] - li[index] != a: return False return True
内容的提问来源于stack exchange,提问作者kankan77
相关产品推荐
相关产品推荐

