在 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}'")

https://pypi.org/project/pytimedinput/