seeking deeper (language theory) reason behind Python design choice

Ian Kelly ian.g.kelly at gmail.com
Thu May 10 22:37:36 EDT 2018


On Tue, May 8, 2018 at 11:50 PM, Chris Angelico <rosuav at gmail.com> wrote:
> On Wed, May 9, 2018 at 3:36 PM, Ian Kelly <ian.g.kelly at gmail.com> wrote:
>>
>> while True:
>>     if we_are_done():
>>         break
>>     # do some stuff
>>     ...
>>     if error_occurred():
>>         break
>> notify_user()
>>
>>
>> Fixed, using idiomatic Python and without needing to use assignment in
>> an expression.
>
> Why is it that "while True" is idiomatic Python for a non-infinite
> loop? Is it merely because Python currently has no other way to spell
> certain loops? Surely it would be more idiomatic to encode the loop's
> termination condition in the header, if it were possible.

In the case of the code above you're correct; the condition could be
moved directly into the while. The loop that I adapted first assigned
we_are_done() to flag and then asserted that flag would be checked
again later. I neglected to maintain this part when I rewrote it.



More information about the Python-list mailing list