在Python中输入一定数量的时间?

时间:2015-09-30 21:43:47

标签: python string time

我正在制作一个简单的Python文本冒险游戏,我想知道一种如何制作一个要求用户输入的简单函数的方法;但是,我希望程序只能在一定时间内接受输入(在我的程序中我使用3秒)。此外,我希望函数在接受输入之前检查输入的正确性。我的尝试如下:

lvl1 = [
 'Hi', 'Friend', 'Say', 'Smelly',
 'Made', 'Tree', 'Python', 'Freak'
]

one = raw_input("You have 3 seconds to type: " + random.choice(lvl1))
endtime = time.time() + 3
while time.time() <= endtime and lvl1[0:]: 
  print("Wrong!")
  one = raw_input("Try again: ")
print("Correct")

基本上我想要这个代码做的是从用户那里获得一个输入(小于或等于)3秒的持续时间,但在祝贺用户之前,请确保他们的输入与其中一个相同'lvl1'数组中的字符串。

谢谢!

1 个答案:

答案 0 :(得分:-1)

你非常接近。您错过的一件事是您需要在提示用户输入之前启动计时器。如果不这样做,程序将在启动计时器之前等待用户输入,这将始终导致“在3秒以内”条件为真。我做的另一个更改是存储随机选择的单词的值,以便您可以显示它,稍后在程序中验证用户的输入是否匹配。

import random
import time

lvl1 = [
 'Hi', 'Friend', 'Say', 'Smelly',
 'Made', 'Tree', 'Python', 'Freak'
]

word = random.choice(lvl1)
start_time = time.time()
one = raw_input("You have 3 seconds to type: {}\n".format(word))

while time.time() - start_time > 3 or one != word:
    print("Wrong!")
    start_time = time.time()
    one = raw_input("Try again: ")
print("Correct")

希望这有帮助!