如何超时等待`input`?

时间:2016-04-08 19:54:27

标签: python-3.x

让我们说:

import.time

print('Make a guess: ')

time.sleep(0.5)

guess = input()

if guess == 45:
   print('Correct')

如果在不到4秒的时间内写入45,我只希望这个能够正常工作。我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以做的最简单的事情是跟踪花费的时间:

import time

start = time.time()
guess = input()
end = time.time()

if end-start > 4:
    print('Sorry, you took too long!')
elif guess == '45':
    print("Hooray! You're right!")
else:
    print('Nope, sorry.')

注意:我还将45更改为'45',因为input在Python3中返回一个字符串。如果您使用的是Python2,则应使用guess = raw_input()代替。