打印后执行下一条指令的Python尾随逗号

时间:2010-10-24 18:20:41

标签: python text

如果在print语句的末尾添加了尾随逗号,则首先执行下一个语句。为什么是这样?例如,这会在打印10000 ** 10000之前执行"Hi "

print "Hi",
print 10000 ** 10000

打印“嗨你好”之前需要一段时间:

def sayHello():
    for i in [0] * 100000000: pass
    print "Hello"
print "Hi",
sayHello()

4 个答案:

答案 0 :(得分:23)

  1. 在Python 2.x中,,语句中的尾随print会阻止发出新行。

    • 在Python 3.x中,使用print("Hi", end="")来达到同样的效果。
  2. 标准输出是行缓冲的。因此,在发出新行之前不会打印"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