【发布时间】:2016-01-12 00:48:00
【问题描述】:
阅读this 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”作为最终通知器会比使用标志更漂亮。
【问题讨论】:
-
你应该用示例输入来解释你期望的输出。
-
else如果由于迭代器耗尽而退出 for 循环,则调用break以避免调用else。 -
我认为使用像
continued = True这样的标志变量虽然不是特别像pythonic,但最好的选择。
标签: python