A use-case for for...else with no break
Terry Reedy
tjreedy at udel.edu
Thu Nov 2 18:20:26 EDT 2017
On 11/2/2017 6:10 AM, Steve D'Aprano wrote:
> Occasionally it is useful to loop over a bunch of stuff in the interactive
> interpreter, printing them as you go on a single line:
>
> for x in something():
> print(x, end='')
>
> If you do that, the prompt overwrites your output, and you get a mess:
>
>
> py> for x in "abcdefgh":
> ... print(x, end='')
> ...
> py> efghpy>
This seems like a bug in how Python interacts with your console. On
Windows, in Python started from an icon or in Command Prompt:
>>> for c in 'abc': print(c, end='')
...
abc>>>
IDLE adds \n if needed, so prompts always starts on a fresh line.
>>> for x in 'abcdefgh':
print(x, end='')
abcdefgh
>>>
> "For ... else" to the rescue!
>
> py> for char in "abcdefgh":
> ... print(char, end='')
> ... else:
> ... print()
> ...
> abcdefgh
> py>
--
Terry Jan Reedy
More information about the Python-list
mailing list