2017-01-07 409 views
0

所以,我想在Python中製作一個倒數計時器。但是,我發現試圖用下一個最低數字替換當前打印的數字有困難。因此,例如,30將被打印,然後數字29將取代它,然後28將取代它,依此類推。在Python 3中製作計時器

def timer(): 
# I haven't made the counting down yet(sorry) 
for i in range(30): 
    print(i, end = '\r') 

如果任何人都可以幫助我,這將是偉大的。

+0

你能解釋一下「下一個最低號碼」是什麼意思嗎? – soundslikeodd

+0

我的意思是打印物品是30,那麼29就會被替換,然後是28,等等。 – rbhog

+0

您想要在第二次打勾時「覆蓋」上一個號碼。它是否正確? – soundslikeodd

回答

2

您必須使用範圍函數及其所有參數。

範圍(啓動,停止[步驟])

這是一個通用的函數來創建包含算術級數 列表。它最常用於 循環。參數必須是純整數。如果省略step參數爲 ,則其默認值爲1.如果省略start參數,則其 默認爲0.完整形式返回一個普通整數列表[start, start + step,start + 2 * step,。 ..]。如果步驟是肯定的,則最後的 元素是最小的開始+ i *步驟,小於停止;如果步驟爲 否定,則最後一個元素是最小的開始+ i *步驟大於 的停止。一步不能爲零(或者ValueError被掛起)

如果你想更換一個很好的選擇是使用回車「\ r」更改打印結束"\n"""

import time 

for x in range(30, 0, -1): 
    print("\r %d" % x, end="") 
    time.sleep(1) 
+0

您可能想添加一個解釋爲什麼'\ r'沒有辦法。並且當某些輸出比其他輸出長時要小心,正如在這裏的情況一樣。 –

+0

@eyllanesc感謝您的建議。我在想的是,30將被刪除,然後29將顯示在同一行。那可能嗎? – rbhog