python如何进行倒计时

时间:2016-12-28 23:31:02

标签: python countdown

您好我一直在努力想要倒计时我甚至尝试过搜索但是它们与我想要的类型有点不同 我想要查找/使用的倒计时类型,当数字下降时,它不会在打印中创建新数字 它的作用是编辑已经放置的数字,例如: 我不想要

10
9
8
7
6
5
4
3
2
1

我希望它删除数字10并将其替换为9但我无法弄明白

4 个答案:

答案 0 :(得分:0)

这是你想要的吗?

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

答案 1 :(得分:0)

因为控制台是特定于操作系统的,所以你可能会有不同的行为

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)

答案 2 :(得分: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中的方法可行吗?

答案 3 :(得分:0)

在某些终端/控制台中,您可以使用"\r"移至当前行的开头,然后您可以print()新文本并覆盖旧文本。如果旧文本比新文本长,则必须打印额外的空格以删除旧文本。

import time

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