我有一个通常运行良好的while循环,但我想将它转换为for循环。 while循环如下:
with open(filename) as a:
while tally != c:
line = a.readline()
c = line.strip()
在我打开文件的地方,读取每一行,直到找到我感兴趣的行.for循环如下:
with open(filename) as a:
for line in enumerate (a):
if tally == c:
break
elif tally != c:
c = line
似乎循环每次只读取到文件的末尾,并将变量c
转换为由随机数和文件的最后一行组成的元组。我知道文件中存在tally
中包含的字符串,因为while循环执行预期的功能。
答案 0 :(得分:1)
固定代码:
with open(filename) as a:
for line in a:
if tally == c:
break
else:
c = line.strip()
两个问题:
for line in enumerate(a)
表示line
在行号的每次迭代和文件中的实际行中获取元组。阅读enumerate
以了解其用途。c = line
与原始循环中的c = line.strip()
不同。答案 1 :(得分:-1)
而不是c=line
,它必须是c=line.strip()
。