2016-12-28 27 views
-5

你好,我一直在試圖找出倒計時,我甚至嘗試過搜索,但他們在哪裏有點不同,我想要什麼類型 倒計時我試圖找到/使用的類型是一其中當數下降不會創建打印 新號碼是什麼它是編輯例如已放置數: 我不想蟒蛇如何使倒計時

10 
9 
8 
7 
6 
5 
4 
3 
2 
1 

我希望它刪除的號碼10和取而代之的是9,但我無法弄清楚它

+2

您到目前爲止嘗試了哪些代碼? SO不是代碼寫入服務。同時向我們展示一些期望的輸出 – blacksite

+2

請粘貼你的代碼。它可以像**一樣簡單(10,0,-1):print i ** –

+0

+ not_a_robot也許它只是我,但你能不能讀那是什麼似乎我說我所說的一切我不想要10 9 8 7 6 5 4 3 2 1我想要10被移除然後換成9你可以做出這樣的輸出 –

回答

0

因爲控制檯是特定的OS,並且可以表現不同在這裏你去

from Tkinter import *   # Importing the Tkinter (tool box) library 
root = Tk()      # Create a background window 
var = StringVar() 
lbl = Label(root,textvariable=var)   # Create a label widget 
lbl.pack()     # Pack label widget 
def update(n=None): 
    if n: 
     var.set("%s"%n) 
    elif int(var.get()) > 0: 
     var.set("%s"%(int(var.get())-1)) 
    root.after(1000,update) 
update(10) 
root.mainloop()     # Execute the main event handler 

你也許可以做到這一點使用COLORAMA這是作爲一個跨平臺的增強型終端的事情

import colorama 
import time 
colorama.init() 

for i in range(10,-1,-1): 
    print "\033[2J\033[1;1f%d"%i 
    time.sleep(1) 

你或許可以通過做類似

import time 
for i in range(10,-1,-1): 
    print "\b\b\b%2d"%i, 
    time.sleep(1) 
+0

這正是我需要的,但是在控制檯中:D –

+0

「\ b」*應該*爲退格字符......但它的不可預知性如何由控制檯處理...你可以使用curses做更好的工作,但這可能很難用windows –

+0

來管理你最後的編輯作品非常感謝你 –

0

這是你想要的嗎?

start_number = 10 
for i in range(start_number-1,0,-1): 
    print(i) 
+0

不,我在帖子中說我不想要任何像我想要的東西,所以當1號碼有像例如10當數字改變它將刪除10輸出並將其替換爲9 –

+0

您如何向我們提供您想要的輸出示例?把它放在一個代碼塊中,就像你用上面的輸出所做的那樣 –

0

如果您正在運行MacOS的,在終端窗口這個代碼的運行應該工作:

import time,os 
for a in xrange(10,0,-1): 
    os.system("clear")  # Clears the screen 
    print a     # Prints the number 
    time.sleep(1)   # Waits one second 

如果您使用的是Windows,此代碼應(可能)的工作:

import time,os 
for a in xrange(10,0,-1): 
    os.system("cls")   # Clears the screen (Windows equivalent) 
    print a     # Prints the number 
    time.sleep(1)   # Waits one second 

然而這,只能在終端/命令提示符窗口中使用。在IDLE(如果這是你使用的是什麼),它仍然只是打印

10 
9 
8 
... 

假設你保存你的Python文件foo.py。然後打開一個終端或命令提示符窗口,導航到該文件的位置,然後鍵入

python foo.py 

這應該使它發揮作用。如果您想要了解更多有關如何使用終端/命令提示符的詳細說明,我可以附上GIF或其他內容。

然而,在IDLE中,我不認爲有可能清除輸出....也許sys.stdout中的某個方法可行嗎?

0

在某些終端/控制檯中,您可以使用"\r"移動到當前行的開頭,然後您可以print()新文本並覆蓋舊的文本。如果舊文本比新文本長,那麼你必須打印額外的空格來刪除舊文本。

import time 

for i in range(10, 0, -1): 
    print(i, "*"*i, end='\r') 
    time.sleep(1)