2013-12-18 127 views
0

我知道如何利用time.sleep(),但我很好奇如何打印像這樣:打印每隔一段時間

"hey...(pause)...you...(pause)....there" 

在「暫停」是一些time.sleep()間隔。我只能在單獨的行上打印這些間隔。有沒有辦法把它全部放在一條線上?

回答

3

在Python 2:

print "hey...", 
time.sleep(0.5) 

在Python 3:

print("hey...", end=' ') 
time.sleep(0.5) 
+0

這是否將它全部放在同一行? – Matt

+0

是的,它的確如此。你可以自己嘗試一下。 –

+0

啊,尾隨的逗號。這是關鍵。謝謝! – Matt

1

在python2.x一個print語句,您可以用後面的逗號抑制換行符:

print "hey...", 
time.sleep(1) 
print "...you...", 
time.sleep(1) 
print "....there" 

在python3.x(或啓用from __future__ import print_function),使用end關鍵字到print功能

print("hey...", end="") 


或者,最後,你可以隨時寫入到sys.stdout流:

import sys 
sys.stdout.write("hey...") 
time.sleep(1) 
... 

這裏的好處是,你可以明確地刷新它:

sys.stdout.flush() 

技術上不總是。 sys.stdout可能被別的東西取代:sys.stdout = 3 - 但是如果沒有自己清理乾淨,那就太糟糕了。但是,如果你發現自己處於這種情況,sys.__stdout__是一個備份;-)。

+1

哦,它的上! 'print'聲明的戰鬥:P –

+0

呃 - 恩。哦,不,你不需要!你甚至不想在這裏引入'sys.stdout.write'! – mgilson

+0

嘿!這不會有沖洗問題嗎? – inspectorG4dget

相關問題