如果在print语句的末尾添加了尾随逗号,则首先执行下一个语句。为什么是这样?例如,这会在打印10000 ** 10000
之前执行"Hi "
:
print "Hi",
print 10000 ** 10000
打印“嗨你好”之前需要一段时间:
def sayHello():
for i in [0] * 100000000: pass
print "Hello"
print "Hi",
sayHello()
答案 0 :(得分:23)
在Python 2.x中,,
语句中的尾随print
会阻止发出新行。
print("Hi", end="")
来达到同样的效果。标准输出是行缓冲的。因此,在发出新行之前不会打印"Hi"
。
答案 1 :(得分:5)
您正在看到stdout缓冲的效果:Disable output buffering
答案 2 :(得分:4)
正如其他人所说,标准输出是缓冲的。您可以尝试在需要输出的点处使用它:
sys.stdout.flush()
答案 3 :(得分:2)
print会自动将换行符放在字符串的末尾。这不一定是我们想要的;例如,我们可能希望分别打印几个数据,并将它们全部显示在一行上。要防止添加换行符,请在print语句的末尾加上逗号:
d=6
print d,
print d
Output:
6 6