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

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to