被键盘中断时暂停/恢复定时器

问题描述

在python中创建一个从00:00:00开始的计时器。如果被键盘中断,计时器应暂停/恢复。请帮助我理解如何使用 KeyboardInterrupt 来暂停/恢复计时器。

import time
def timer():
    for i in range(12):
        for j in range(60):
            for k in range(60):
                try:
                    print("{:02d}:{:02d}:{:02d}".format(i,j,k))
                    time.sleep(1)
                # except KeyboardInterrupt:
                    # print('Break')

解决方法

这很丑但有效?

import time

def timer(pause_i,pause_j,pause_k):
    for i in range(pause_i,12):
        for j in range(pause_j,60):
            for k in range(pause_k,60):
                try:
                    print(f"{i:02d}:{j:02d}:{k:02d}")
                    time.sleep(1)
                except KeyboardInterrupt:
                    try:
                        input('\nCtrl+C to resume\n')
                    except KeyboardInterrupt:
                        timer(i + 1,j + 1,k + 1)

timer(0,0)

我觉得用key = input('...')来恢复定时器比较好,比如

key = input('\ninput r to resume : ')
if key == 'r':
    timer(i + 1,k + 1)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...