python - Python 3.5:输入函数不需要回车,只接受一个字符,只有满足给定条件才返回字符
问题描述
我正在设计一个游戏,其中我需要输入功能来接受输入,而无需用户按下回车键。此外,一旦用户输入了单个字符,应该存储输入的变量必须立即包含该字符(就像用户在输入该字符后按下了回车键一样)。只有满足给定条件时,输入的字符才必须显示在屏幕上。请启发我如何实现这一目标。谢谢你。
注意:我是 Python 的初学者,因此请不要深入研究超出我理解范围的事情。我的老师禁止我们在项目中使用类。我应该能够利用屏幕上显示的字符,而我认为使用其他类似问题的解决方案是不可能的。
解决方案
经过搜索,我找到了一个名为 的打包msvcrt
,它可以对您的情况有所帮助。有关更多信息,请查看:python 中的 raw_input 而无需按 enter。
以下是一个简单的示例(它适用于 Windows)。您应该打开命令行并使用它python xxx.py
来执行以下程序。
import msvcrt
import sys
while True:
c = msvcrt.getch()
if c == b'\x03': # Ctrl-C
sys.exit()
#print(type(c)) # bytes
#convert from bytes to str
c = c.decode('utf-8')
if c =='a': #replace 'a' with whatever you want
print(c)
它从 中获取单个字符输入msvcrt.getch()
并将其分配给变量c
。
如果其字符串格式等于 ,它会打印该字符'a'
。
如果要退出程序,只需按Ctrl-C
。
编辑:
从Python kbhit() 问题来看,它本质上似乎msvcrt.getch
无法在 IDLE 中工作。但是有一个解决方法(调整自:PyCharm: msvcrt.kbhit() and msvcrt.getch() not working?)。如果您使用的是 Spyder,请单击Run
-> Configuration per file
-> Execute in an external system terminal
。当你稍后运行脚本文件时,会跳出一个控制台窗口。
推荐阅读
- php - 通过单击 HTML div 带参数的 PHP 调用函数
- android - E/chromium:[错误:compositor_impl_android.cc(585)] 无法为合成器初始化 OutputSurface
- php - laravel 播种机给出错误并且不会播种
- xml - DITA OT 返回平面主题结构
- bots - discord.py(on_reaction_add)中的自定义表情符号不起作用
- google-apps-script - ISO 8601 UTC 时间的当前时间戳(即:2013-11-03T00:45:54+02:00)
- laravel - 如何使用 laravel 后端 API 在 nuxt.js 中制作图片上传表单
- python - Gurobi 与 Python(优化迭代/模拟)
- c++ - 链接嵌入 Python 的 C++ 目标文件
- java - 用于打印 3 的倍数的 while 循环