当一个继续击中时,是否有一种pythonic方式激活for循环中的else?

时间:2015-10-14 04:36:15

标签: python

阅读此post并没有真正回答我的问题。

我有一个

reader = csv.reader(source)
for row in reader:
    if len(row[0]) > 23:
        #do stuff
        continue
    if low > float(row[1]) > high:
        #do stuff
        continue
    if low > float(row[2]) > high:
        #do stuff
        continue
else:
    print('All', reader.line_num, 'read successfully.')

设置但else已执行,尽管我在for循环中跳过。

我宁愿只在没有continue被击中的情况下才会调用else。

为了澄清,代码的目的是删除csv文件中的错误/格式错误的数据行。因此,格式错误的行具有单独的错误处理。如果可能的话,使用'else'作为最终通知符将比使用标志更美观。

1 个答案:

答案 0 :(得分:4)

else唯一重要的是循环是否因为到达迭代的末尾而终止;它并不关心循环内部发生的事情。

如果您希望根据是否曾调用过continue而有不同的行为,那么您必须自己跟踪它。