python - Python 3 - 在循环中创建时间定义的用户输入(Windows)
问题描述
我决定在这里问,因为在花了几个小时试图找出我的问题(单独和在线)之后,我没有得到任何结果。
先解释一下我的问题:
我正在尝试编写一个脚本,该脚本会从预定义的列表中随机选取一个单词,随机化该单词中字母的顺序,并向用户显示带有这些随机顺序字母的图片。用户的作用是输入神秘词的第一个字母。到目前为止,我的脚本是成功的并且工作正常,我对此非常满意。但是,当我尝试实现“限时”用户输入时,我遇到了一个相当大的问题。事实上,我希望用户在有限的时间内输入神秘词的第一个字母。如果用户没有输入任何内容,那么程序将打印类似“时间到了!”的内容。并将继续其进程。
我与解决方案最接近的是 Alex Martelli 在这里的回答:How to set time limit on raw_input 但是,该脚本似乎对我不起作用。它肯定会在退出循环之前等待 X 分钟,但如果我输入一些东西,它不会做任何其他事情。我尝试使用 time.time() 并将其存储到变量中并检查每次迭代,我尝试了不同的线程方法但没有成功。我已经阅读了很多帖子,其中大多数都无法帮助我,因为它们适用于 linux 或 Mac(我在 Windows 上)。
我把我当前的脚本放在下面。请记住,为了清楚起见,我只在此处放置了一个选项的脚本,但最终版本中有 5 个。cycle_nb 是一个计算整个循环的变量,如果用户想连续做 5 个问题,那么整个事情会重复 5 次,每次给用户一个定义的时间来回答。
我不知道如何在当前配置中实施限时解决方案。我不是专家,我不知道大量的 Python 模块,我主要是跟上这个项目来尝试和学习,因为我对编程非常感兴趣。因此,我更愿意求助于比我有更好想法的实际专家来解决这个问题,并希望在此过程中向他们学习。
#First half of script that leads to production of an image (plt below) with randomized letters
plt.show()
answer = randomstring_answer
secret_word = randomword
player_answer = input()
option1 = randomstring
if player_answer == "1":
if option1 == answer:
print("Correct!")
print("The answer was " + secret_word)
cycle_nb = cycle_nb+1
plt.close()
else:
print("Wrong!")
print("The answer was " + secret_word)
cycle_nb = cycle_nb + 1
plt.close()
#Rest of the script
提前感谢您的时间和帮助!
解决方案
推荐阅读
- authentication - Azure DevOps 是否支持 SSO(单点登录)?
- django - 如果我是该组的成员,如何查看其他组成员?
- kotlin - Kotlin:无法识别两个字符串相等
- java - 安卓软键盘输入法
- php - php正则表达式:如何匹配数字+字母+中文
- javascript - Javascript Input Datalist 不断添加选项
- pandas - 获取 pandas CSV 嗅探器方言信息
- android - 在前台有两个 Android 活动
- flutter - 在小部件树中检测到 Flutter Duplicate GlobalKeys
- r - R - 如何在不使用函数的情况下根据一组条件执行某些代码块?