gpt4 book ai didi

python - 定时器可重新启动

转载 作者:行者123 更新时间:2023-12-01 00:03:51 27 4
gpt4 key购买 nike

我想创建一个简单的计时器,它显示当前的剩余时间(在我的代码中,我使用 turtle 来使其更清晰,但只需每秒打印一秒就可以了)。问题是我想要它,这样如果我按下键盘上的某个键(可以是特定的键,如 Enter 或空格),我希望计时器重新启动。这是我当前的代码

time = input("Please enter the time").strip()
time = time.split(" ")
for i in range(len(time)):
time[i]=int(time[i])
print(time)
seconds = 3600*time[0]+60*time[1]+time[2]
import turtle as turt
from time import sleep
t = turt.Turtle()
t.hideturtle()
for i in range(seconds, 0, -1):
t.clear()
t.write(i, align = 'center', font=("Arial", 40, "normal"))
sleep(1)
t.clear()
t.write("TIMER DONE", align = 'center', font=("Arial", 40, "normal"))

如何才能使当我单击键盘上的某个键时计时器重新启动。预先感谢您的任何帮助!

<小时/>

编辑:基本上,我想要的是一种方法,这样每当我按下键盘上的一个键时,无论哪个键,它都会重新启动程序,无论哪一行计划目前正在进行中。

最佳答案

我会折腾时间/ sleep 并使用 turtle 自己的ontimer()来倒计时。

from turtle import Screen, Turtle

FONT = ("Arial", 40, "normal")

strings = input("Please enter the time: ").strip().split(' ')

time = [60 ** (len(strings) - index - 1) * int(unit) for index, unit in enumerate(strings)]

seconds = -1
ticking = False

def tick():
global seconds, ticking

turtle.clear()

if seconds < 0:
turtle.write("TIMER DONE", align='center', font=FONT)
ticking = False
else:
turtle.write(seconds, align='center', font=FONT)
seconds -= 1
screen.ontimer(tick, 1000)

def reset():
global seconds, ticking

screen.onkey(None, "Return") # Disable event handler inside handler

seconds = sum(time)

if not ticking:
ticking = True
tick()

screen.onkey(reset, "Return") # Reenable event handler

screen = Screen()

turtle = Turtle()
turtle.hideturtle()

reset()

screen.listen()
screen.mainloop()

当您点击 时,它将返回到原始值并重新开始倒计时。即使计时器停止后。如果您只想显示 15 秒,只需输入“15”,无需输入所有字段。

关于python - 定时器可重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60124262/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com