在 python 超时后设置输入函数的默认值
Set default value for input-function after timeout in python
我在互联网上搜索了很长时间,但在 Windows 10.
上找不到 Pyhton 3.6 问题的正确答案
一开始,程序应该询问用户是否愿意回答“是 [y] 或否 [n]?”这个问题。当用户回答“y”或“n”时一切正常。
问题是这样的:
5 秒后,输入功能应该终止,如果没有回答,则应该设置默认值(即“n”),程序应该继续自动到运行。不幸的是,当我按“输入”时,它只是继续 运行。
我现在的代码如下:
from threading import Timer
answer = "n"
timeout = 5
t = Timer(timeout, print, ['\nDefault setting: MA = n'])
t.start()
prompt = "Yes [y] or No [n]?: "
user_input = input(prompt)
t.cancel()
if user_input == "n" or user_input == "y":
answer = user_input
if answer == "n":
print("Answer is n")
else:
print("Answer is y")
这个例子帮助了我:
from pytimedinput import timedInput
userText, timedOut = timedInput("Please, do enter something: ")
if(timedOut):
print("Timed out when waiting for input.")
print(f"User-input so far: '{userText}'")
else:
print(f"User-input: '{userText}'")
我在互联网上搜索了很长时间,但在 Windows 10.
上找不到 Pyhton 3.6 问题的正确答案一开始,程序应该询问用户是否愿意回答“是 [y] 或否 [n]?”这个问题。当用户回答“y”或“n”时一切正常。
问题是这样的: 5 秒后,输入功能应该终止,如果没有回答,则应该设置默认值(即“n”),程序应该继续自动到运行。不幸的是,当我按“输入”时,它只是继续 运行。
我现在的代码如下:
from threading import Timer
answer = "n"
timeout = 5
t = Timer(timeout, print, ['\nDefault setting: MA = n'])
t.start()
prompt = "Yes [y] or No [n]?: "
user_input = input(prompt)
t.cancel()
if user_input == "n" or user_input == "y":
answer = user_input
if answer == "n":
print("Answer is n")
else:
print("Answer is y")
这个例子帮助了我:
from pytimedinput import timedInput
userText, timedOut = timedInput("Please, do enter something: ")
if(timedOut):
print("Timed out when waiting for input.")
print(f"User-input so far: '{userText}'")
else:
print(f"User-input: '{userText}'")