【发布时间】:2016-07-28 21:43:51
【问题描述】:
我在 for 循环中有一个字符串数字列表和一个计数器。如果计数器在列表中,我会做一些事情,如下所示:
codes = ['123','1245','564','8920','57498']
f = open('path_to_file','r')
for lineno, line in enumerate(f, start=1):
if str(lineno) in codes:
print str(lineno) + ' is in the list'
问题是 if 条件似乎从某个点开始总是为真,因为一旦 lineno = 123 它总是打印 if 块内的句子。
有人发现这段代码有问题吗?谢谢
【问题讨论】:
-
废话。设置像
i = 122这样的变量。str(i) in codes是假的。增加它:是的。再次增加:错误。我在解释器中用了 7 行代码,用完全对新手友好的代码来证明你的“如果条件从某个点总是为真”的假设是错误的。这是你的真实代码吗? -
你为什么说
f = open(...)然后枚举file? -
我无法重现这个错误——你确定这正是你编码的方式吗? pastebin.com/w232SzaV
-
你可能会错过一些东西。我测试了,看起来还可以。
标签: python python-2.7 python-2.x