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
相关产品推荐
相关产品推荐

