Reputation: 12108
I have this code construct:
flag = True
while flag:
do_something()
if some_condition:
flag = False
Is it the best way to do that? Or is there a better pythonic way?
Upvotes: 0
Views: 93
Reputation: 91119
def late(cond):
yield None
while cond(): yield None
for _ in late(lambda: condition):
do_something()
Looks weird. What happens here?
The late()
generator forst yields a value in order to enter the loop unconditionally. And in every successive loop run, the cond()
is checked.
Upvotes: 1
Reputation: 880399
while True:
do_something()
if some_condition: break
or
while not some_condition:
do_something()
For the second option to be equivalent to the first, some_condition
must start as False
so do_something()
will get called at least once.
Upvotes: 4