Python输入停止计时器

时间:2018-05-20 09:49:11

标签: python python-3.x

python中的初学者,如何制作一个打印出剩余时间的计时器,当用户按下并输入任何键时,计时器也会停止。这是我现在的代码:\

import time

keep_going = input("Press any key to stop the timer")

for i in range(3):
print(i + 1),
time.sleep(1)

if keep_going != " ":
    break

但它不起作用,因为在询问问题后计时器启动。

2 个答案:

答案 0 :(得分:1)

在单线程环境和命令行中无法实现。因为它没有机会来检测'如果按下任何键(没有输入)。

import time


counter = 0
try:
    while True:
        print(counter + 1)
        counter += 1
        time.sleep(1)
except KeyboardInterrupt:
    print('You\'ve exited the program.')

程序将等到Ctrl+C 键盘中断被按下。

与for循环相同。

import time


try:
    for i in range(3):
        print(i + 1)
        time.sleep(1)
except KeyboardInterrupt:
    print('You\'ve exited the program.')

答案 1 :(得分:0)

我会为计时器创建一个单独的线程。在该线程中启动计时器,并等待主线程中的输入。

import time
import threading

def run_timer():
    flag = True
    for i in range(3):
        print(i + 1)
        time.sleep(1)
        if not flag:
            break

timer_thread = threading.Thread(target=run_timer)
timer_thread.daemon = True
timer_thread.start()

在用户输入密钥的主线程中,您应该相应地设置标记。