在录制输入时使用python制作计时器
我正在尝试创建一个程序,它以类似于游戏节目倒计时的格式运行 我找到了多种创建计时器的方法,最成功的方法是使用在录制输入时使用python制作计时器,python,input,timer,countdown,Python,Input,Timer,Countdown,我正在尝试创建一个程序,它以类似于游戏节目倒计时的格式运行 我找到了多种创建计时器的方法,最成功的方法是使用time.sleep命令和while循环 但是,用户需要能够在计时器运行时输入一个单词,否则用户可能需要在计时器停止后思考单词的时间。一旦计时器停止,用户键入的任何内容都应被视为他们的文字。我还没有找到任何解决方案,因为python是按顺序运行的,所以很难同时有一个计时器和一个输入。这对我以前很有效。。。使用time.time()。如果这不是你想要的,也许可以查看perf_counter(
time.sleep
命令和while
循环
但是,用户需要能够在计时器运行时输入一个单词,否则用户可能需要在计时器停止后思考单词的时间。一旦计时器停止,用户键入的任何内容都应被视为他们的文字。我还没有找到任何解决方案,因为python是按顺序运行的,所以很难同时有一个计时器和一个输入。这对我以前很有效。。。使用time.time()。如果这不是你想要的,也许可以查看perf_counter()
导入msvcrt
导入时间
def倒计时():
p=3.00
报警=时间。时间()+p
text=[]
尽管如此:
n=时间。时间()
如果msvcrt.kbhit():
text.append(msvcrt.getche())
如果n<报警:
打印(圆形(报警-n))
其他:
打印(“时间到了!”)
打破
倒计时
我认为您需要使用线程可能有用线程建议中可能存在的问题是,您不能轻易终止“watches The clock”线程中的“waiting for input”(等待输入)线程。@Kevin我链接的副本说明了如何做到这一点,它正试图解决类似的问题。您是否正在尝试编写控制台应用程序,或者GUI?好的,但是在运行时,他如何同时使用
raw\u input
或input
从用户那里获得响应?while循环中的任何内容都应该执行,直到时间用完。因此,我将在while循环中添加输入功能,可能在if ninput
将被阻止,并且在用户输入一些文本并按Enter键之前,不会执行其他代码。所以他们可以在按下enter键之前等待一百万秒,而你的脚本在那一百万秒之后才会打印“时间到了”。啊,你是对的。相反,也许他可以添加一个if语句,看看是否有一个按键正在等待使用msvcrt.kbhit()读入。Kevin我编辑了代码来添加它,你看这是否有意义?
import msvcrt
import time
def Countdown():
p = 3.00
alarm = time.time() + p
text = []
while True:
n = time.time()
if msvcrt.kbhit():
text.append(msvcrt.getche())
if n < alarm:
print(round(alarm - n))
else:
print("Time's up!")
break
Countdown()