You need to enable JavaScript to run this app. 如何调用等差数列判断函数遍历外部TXT文件逐行输出校验结果
优惠活动
大模型
产品
解决方案
定价
更多

如何调用等差数列判断函数遍历外部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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 16:15:03