2010-10-24 60 views
8

如果在打印语句的末尾添加尾随逗号,则首先执行下一条语句。为什么是这样?例如,它打印"Hi "在此之前执行10000 ** 10000打印后的Python尾随逗号执行下一条指令

print "Hi", 
print 10000 ** 10000 

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

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

回答

21
  1. 在Python 2.x中,在尾随,一条print语句阻止发射新的线。

    • 在Python 3.x中,使用print("Hi", end="")可以达到同样的效果。
  2. 标准输出是行缓冲。所以"Hi"将不会打印新行之前。

+0

是否有与Python 3中尾随逗号相似的类似符号? 'print('Hi')'不具有相同的效果。 – jgrant 2016-05-26 00:53:04

+1

@jgrant查看更新。 – kennytm 2016-05-26 02:53:32

4

正如其他人提及,标准输出缓冲。您可以尝试在您需要的输出出现点使用此:

sys.stdout.flush() 
1

打印自动将一个换行符在字符串的结尾。这不一定是我们想要的;例如,我们可能要分别打印多个数据片段,并将它们全部显示在一行上。为防止添加换行符,请在打印语句末尾加上逗号:

d=6 
print d, 
print d 

Output: 
6 6