我在 MacOSX 上运行 python 版本 2.7.3。
考虑这个代码块:
from __future__ import print_function
import time
x = 0
while x < 5:
print(x)
x += 1
time.sleep(1)
如果我运行这个脚本,我会观察到我期望的输出:0
通过每个数字附加4
一个字符的数字。\n
此外,每个数字都会在暂停一秒后显示。
0
1
2
3
4
现在考虑这个代码块:
from __future__ import print_function
import time
x = 0
while x < 5:
print(x, end='')
x += 1
time.sleep(1)
输出是我所期望01234
的,没有\n
's,但时间出乎意料。该过程不是在暂停一秒钟后显示每个数字,而是等待四秒钟,然后显示所有五个数字。
为什么它的print('string')
行为与print('string', end='')
while 循环不同?有没有办法一次显示没有换行符的字符?我试过sys.stdout.write(str(x))
了,但它的行为方式与print(end='')
.