【发布时间】:2013-06-20 13:35:09
【问题描述】:
我有这个代码结构:
flag = True
while flag:
do_something()
if some_condition:
flag = False
这是最好的方法吗?还是有更好的pythonic方式?
【问题讨论】:
-
我想你可以在这里使用
break:o
标签: python coding-style pep
我有这个代码结构:
flag = True
while flag:
do_something()
if some_condition:
flag = False
这是最好的方法吗?还是有更好的pythonic方式?
【问题讨论】:
break :o
标签: python coding-style pep
while True:
do_something()
if some_condition: break
或
while not some_condition:
do_something()
要使第二个选项等效于第一个选项,some_condition 必须以 False 开头,因此 do_something() 将至少被调用一次。
【讨论】:
def late(cond):
yield None
while cond(): yield None
for _ in late(lambda: condition):
do_something()
看起来很奇怪。这里发生了什么?
late() 生成器 forst 产生一个值以便无条件地进入循环。并且在每个连续的循环运行中,都会检查cond()。
【讨论】: