2017-02-18 34 views
1

爲了創建一個進度條,顯示由目前刪除最後一個書面線和更換蟒蛇

的想法背後是擦除行,然後重寫它,所以它看起來像當前precent礦脈。

我試着這樣做:

import time 
---some kind of loop---: 
    ... downloading stuff ... 
    b = str((prhelp/576)*100) 
    print(b + "%", end="\r") 
    time.sleep(1) 
    prhelp = prhelp + 1 

,但它只是不打印任何東西

此外,我想知道如何點後僅3個數字打印數量 - 12.345678 - >12.345

所以我的程序將無法打印太長precent

+0

你的Python代碼無效... – math2001

+0

'輪(12.345678,3)'? –

回答

-1

最後我只是需要做的:

import time 
b = str(round((prhelp/576) * 100,3)) 
print('\r',end = "") 
print(b + "%",end = "") 
time.sleep(0.01) 
prhelp = prhelp + 1 

這樣做

print('\r',end = "") 

我刪除的最後一行,並在接下來的數我寫makeing地方。

感謝所有的傭工

0

這是因爲當你print,你給參數end是將被添加到最後的字符串。默認情況下,它是\n。你給了\r。這個字符的意思是刪除當前行。這就是爲什麼它不打印的事情......

如果你想要的工作,你的替換此:

print(b + "%", end="\r") 

由:

print(b + "%") 

我猜你想是:

import time 
print('Hello', end='') 
time.sleep(1) 
print('\rworld!') 

此代碼將打印Hello,等待1秒,然後替換Helloworld!

+0

幾秒鐘後,結果是 世界 世界 世界 世界 你好 所以它不工作... – Yonlif

+0

\ r是一個回車,調用'打印(「東西」,最終=「\ r」) '意味着你打印「東西」並告訴計算機在已經存在的東西上寫入下一個字符。所以'print(「stuff」,end =「\ r」); print(「ab」,end =「\ r」)'會顯示'abuff' – jadsq

+0

嘗試使用您的代碼打印「Hello」和「\ rfai」,「\ r」不會擦除該行。 – jadsq