只有在5秒内输入值时才接受输入值的代码是什么?

2024-09-27 09:33:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助编写一个代码,只有当用户在请求输入的5秒内输入时才接受输入,否则打印出一条消息说“太晚了”并结束程序。你知道吗

显然,我用来解决这个问题的算法是不对的。除非用户输入给定的代码,否则时间不会增加。你知道吗

# code for accepting input only if entered within 5 seconds

print("Enter value: ")

sec = 0

for sec in range(0, 6):

    while sec==5:
        print("too late")
    time.sleep(1)
    sec += 1
    a=input()

Tags: 代码用户程序算法消息onlyforinput
2条回答

作为一个简单的方法,你可以这样做:

当输入停止执行时,在输入答案时计算经过的时间,并与限制进行比较(这里默认为5秒)。
如果在时间限制内,则返回答案以供进一步处理,否则too late打印并None静默返回。你知道吗

import time

def timed_acceptance(limit=5):
    start = time.time()
    a = input('you have 5 seconds:')
    end = time.time()
    if end - start < limit:
        return a
    else:
        print('too late')

timed_acceptance()

问题是input阻塞直到有要读取的输入。您要寻找的是所谓的非阻塞IO,如果没有任何内容可立即读取,它将不返回任何内容。下面讨论如何在python中解决这个问题:https://repolinux.wordpress.com/2012/10/09/non-blocking-read-from-stdin-in-python/

相关问题 更多 >

    热门问题