在Python中,如果你想要创建一个可以停止的计时器,你可以使用多种方法。以下是一些实现方法:
方法一:使用Tkinter库
import tkinter as tkimport threadingimport timeclass Timer:def __init__(self, master):self.master = masterself.master.title("Python计时器")self.state = Falseself.seconds = 0self.display = tk.Label(self.master, text="00:00:00", font=("Helvetica", 48))self.display.pack()self.start_button = tk.Button(self.master, text="开始", command=self.start_timer)self.start_button.pack(side=tk.LEFT)self.pause_button = tk.Button(self.master, text="暂停", command=self.pause_timer)self.pause_button.pack(side=tk.LEFT)def start_timer(self):if not self.state:self.state = Trueself.start_time = time.time()self.update_display()self.timer_thread = threading.Thread(target=self.run_timer)self.timer_thread.start()def pause_timer(self):if self.state:self.state = Falsedef run_timer(self):while self.state:time.sleep(0.1)if self.state:self.seconds += 1self.update_display()def update_display(self):hours = int(self.seconds // 3600)minutes = int((self.seconds % 3600) // 60)seconds = int(self.seconds % 60)self.display.config(text=f"{hours:02d}:{minutes:02d}:{seconds:02d}")root = tk.Tk()timer = Timer(root)root.mainloop()
方法二:使用APScheduler库

APScheduler是一个功能强大的任务调度库,可以处理后台任务,即使关闭终端窗口,任务也会继续运行。
from apscheduler.schedulers.background import BackgroundSchedulerdef my_job():print("执行任务...")scheduler = BackgroundScheduler()scheduler.add_job(my_job, 'interval', seconds=10)scheduler.start()try:while True:time.sleep(2)except (KeyboardInterrupt, SystemExit):scheduler.shutdown()
方法三:使用键盘事件控制
如果你想要通过键盘事件来控制计时器的开始和暂停,可以使用以下代码:
import timestart_time = time.time()while True:try:if time.time() - start_time > 10: 计时10秒print("结束")breakinput() 按下回车键开始计时except KeyboardInterrupt:print("结束")break
以上代码展示了如何使用Tkinter创建一个简单的计时器,使用APScheduler进行后台任务调度,以及通过键盘事件控制计时器的开始和暂停。你可以根据自己的需求选择合适的方法
