Well not there is a ```break``` on line 145, so this should be functionally equivalent to before... really what you want is a ```do while```, and AFAICT doing a ```loop-and-a-half``` with ```while True: ... if <predicate>: break``` is the idiomatic way to do this in Python.

Further explanation and rationale http://www.cs.duke.edu/~ola/patterns/plopd/loops.html#loop-and-a-half