【发布时间】:2019-09-06 20:29:21
【问题描述】:
我正在尝试弄清楚如何让 python 在一段时间后停止接受输入。
到目前为止,我所做的工作有效,但在用户按下 Enter 之前不会停止程序。如果重要的话,我会在 Anaconda 提示符下运行这个文件。
#I've made everything short so it's simpler
def f():
try:
if a != "Accepted word":
timer.cancel
print("...")
quit()
except NameError:
#This makes the code run anyway since if the user inputs nothing
#'a' will still be undefined and python will still be waiting for an input
timer.cancel
print("...")
if a == "":
quit()
#Like I said, Python won't actually stop until an input is made
else:
#This runs fine if the user inputs the 'accepted word'
timer.cancel
print(...)
quit()
timer = threading.Timer(5.0, f)
timer.start()
a = input(">")
换句话说,我想做一些事情,让 Python 停止等待输入。如果用户在计时器结束之前输入任何内容,程序运行良好,这很好,除非玩家什么都不输入。如果他们甚至不按 Enter,那么整个过程就会停止。 (我也是 Python 的绝对初学者。事实上,仅仅学习如何制作计时器和使用 time.sleep 函数就花了我几个小时)(顺便说一下,这也是我的知识范围)
【问题讨论】:
-
Python 3 Timed Input 的可能重复项。查看投票率最高的答案(不是接受的答案)的第一部分(“如果可以接受阻止主线程......”)。
-
@iz_ 该代码基本上复制了我已有的。诚然,它比我写的要好,但只要时间到了,我仍然需要按 Enter 键来结束程序。
-
对于初学者来说,
timer.cancel是一个方法,应该用timer.cancel()调用。
标签: python python-3.x