2

我在交互模式下测试了 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
>>>
4

1 回答 1

5

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

>>> import sys
>>> written = sys.stdout.write('10')
10>>> written
2

在这里,下一个提示跟随在'10'没有换行符的情况下。

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

>>> for i in range(3):
...     sys.stdout.write('')
... 
0
0
0
于 2013-10-22T18:26:33.360 回答