You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python循环无限迭代问题求助:循环执行后无法终止

问题分析与修复

你的代码无限循环的核心原因是变量l被定义在for line in lines循环内部,每次迭代处理新的line时,l都会被重新赋值为9,永远无法递增到10,自然触发不了终止逻辑。另外times列表每次循环都重新创建,根本存不下收集的时间数据。

修复后的代码

def NextHour(self):
    times = []  # 移到循环外,避免每次清空
    l = 9       # 初始化移到循环外,保证累加
    with open("flightdata.txt","r") as file:
        lines = file.readlines()
        for line in lines:
            if l == 10:
                self.Compare(time)
                break 
            # 直接处理数据逻辑,去掉冗余判断
            words = line.strip().split(',')
            time = words[5]
            print(words[5])
            times.append(time)
            
            print(l)
            l += 1
        # 处理文件行数不足10行的情况,循环结束后仍调用Compare
        else:
            self.Compare(time)

修改说明

  • 将l = 9和times = []移到for循环外部,确保变量不会被每次迭代重置,实现正常累加和数据存储。
  • 去掉冗余的elif l!=10判断,简化逻辑流程。
  • 保留for-else结构,当文件行数不足10行时,循环正常结束后也会调用self.Compare,避免遗漏处理。

内容的提问来源于stack exchange,提问作者CodeCrusher9000

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 14:39:55