以交互方式从sys.stdout输出

Ola*_*lav 2 python python-3.x

我在交互模式下测试了sys.stdout.write; 为什么我会在数字后面加上'额外'1和2?如果我从文件中运行代码,我会在Windows机器上获得预期的输出(1234 ...)Python 3.3

>>> import sys
>>> for i in range(15):
...     sys.stdout.write(str(i))
...
01
11
21
31
41
51
61
71
81
91
102
112
122
132
142
>>>
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

Python 回显了sys.stdout.write()call 的返回值,即写入的字节数:

>>> import sys
>>> written = sys.stdout.write('10')
10>>> written
2
Run Code Online (Sandbox Code Playgroud)

这里的下一个提示是在'10'没有换行符的情况下写的.

或者,作为一种不同的演示方式,在循环中写入0个字节会0多次打印:

>>> for i in range(3):
...     sys.stdout.write('')
... 
0
0
0
Run Code Online (Sandbox Code Playgroud)