2016-08-26 43 views
5

kullanarak for döngüsünün içinde aynı satırda uyumaya() ve yazdırmaya() bir python 3 kullanarak aynı satırda bir döngü sonucunu yazdırmaya çalışıyordum ve Python: for loop - print on the same line okumayı başardım. Ben baskı öncesiPython 3

time.sleep(2) 

eklediğinizde

for x in range(1,10): 
    print(x, end="") 

şimdi sorundur. Ben vs., daha iki saniye bekleyin iki saniye sonra saniye bekle, ilk karakteri yazdırmak istiyorum

İşte

kodu: aldığımızda

for x in range(1,10): 
    time.sleep(2) 
    print(x, end="") 

biz (20 saniye bekleyin = 10 * 2) ve ancak daha sonra sayılar görüntülenir. Beklediğimiz bu değil.

ben yani çizgi tampon anlamına gelen tamponlanana

+0

Ayrıca başka bir yinelenen [burada] (bkz http://stackoverflow.com/questions/38411532/ nasıl-do-i-baskı-dan-bir-piton-2-7-script çağrıldığında-den-bash-içinde-pycharm/38411633). – TigerhawkT3

cevap

5

Çıktı stdout vb, ikinci karakteri yazdırmak daha 2 saniye bekleyin ilk karakteri yazdırmak 2 saniye bekleyin yukarıdaki beklenen davranışa sahip için yapmanız gerekenler Yeni satır yazdırılıncaya kadar kızarma değil. Açıkça

tamponu da yazdırmak her zaman temizlemek:

print(x, end="", flush=True) 

Demo:

demonstration animation showing slowly-added digits at 2 second intervals

+0

Bence, True'in ilk harfinin gerçekten Büyük Harf ile yazılabildiğini eklemek önemli. ;-) –