如何将计数器再次设置为30,并将其停在0?

时间:2017-03-07 19:45:50

标签: python python-3.x counter

我有一个用于我的脚本的计数器从30下降,我希望它在0处停止。然后,如果我按下一个按钮我想将它设置回30并且它应该再次开始倒计时。这是我现在的代码:

counter = 30

def counter_label(label):
    def count():
        global counter
        counter -= 1
        zähler.config(text=str(counter))
        zähler.after(1000, count)
    count()

zähler = Label(fg="black")
zähler.grid(row=0, column=0)
zähler.after(29000, jokerfragen)#Does something important for my script.

zähler.config(text="30")
counter_label(zähler)

2 个答案:

答案 0 :(得分:1)

使用for循环,您可以完成相同的操作,而不是使用函数。这样,counter变量就变得不必要了,您的代码也更容易理解和修改。这是一个例子:

def counter_label():
    for counter in range(30, -1, -1): # loops backwards from 30 up to and including 0
        zähler.config(text = str(counter))
        zähler.after(1000, count)

每当按下按钮时,只需拨打counter_label,它就会再次从30循环到0。

修改

作为对您的评论的回复,请使用以下代码:

def counter_label():
    while True: # keeps looping forever
        for counter in range(30, -1, -1): # loops backwards from 30 up to and including 0
            zähler.config(text = str(counter))
            zähler.after(1000, count)
        sleep(1000) # waits 1000ms

答案 1 :(得分:0)

def counter_label(label):
    def count():
        global counter
        counter -= 1
        counter %= 30
        zähler.config(text=str(counter))
        zähler.after(1000, count)
    count()

通过执行counter %= 30,一旦达到-1,你可以将计数器重置回29,这与你已经拥有的相同