2010-10-24 54 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