python - 如何使用 msvcrt.getch 提取和使用输入?

标签 python python-3.x

我需要在 python 中创建一个程序/游戏,其中用户快速输入 2 个键,例如 z 或 x 键,这使得他们的角色每次按正确的顺序按下时都会向前移动。我做了很多研究,并决定我应该使用 msvcrt.getch() 来接收输入,但每当我尝试它时,它都会将输入存储为我无法使用的字节,我对编程相对较新,可以使用一些帮助来解释该功能。

最佳答案

您需要将返回值解码str对象:

msvcrt.getch().decode('ASCII')
例如,

会将字节解释为 ASCII 代码点。您可能需要根据键盘布局和区域设置使用不同的编码,但根据文档,msvcrt.getch() API 仅处理 ASCII 字符:

The module implements both the normal and wide char variants of the console I/O api. The normal API deals only with ASCII characters and is of limited use for internationalized applications. The wide char API should be used where ever possible.

您可能想使用 msvcrt.getwch()而不是直接获取 Unicode 值;该方法不仅支持 ASCII 代码点。

关于python - 如何使用 msvcrt.getch 提取和使用输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15599565/

相关文章:

python - YouTube-dl 从 Reddit 下载并命名视频

python - 使用输入设置所有字符的列表。使用列表长度检查所有字符并将其替换为相应的值

python - 如何从 curve_fit 获得置信区间

python - 具有均匀间隔颜色的颜色条的不均匀(不规则)间隔数据

python - SQLAlchemy - 批量插入忽略重复/唯一

python - 尝试在 PostgresQL SELECT 中使用 Python 变量时的语法问题

python - 除了iloc(愿意使用Dask)之外,是否有更快的方法将列分配给数据框(有条件)

python - 属性错误: 'CalibratedClassifierCV' object has no attribute 'coef_'

python - 在 numpy 中重复 matlab dyadup

java - PrintStream.println() 行为 - Java/Python/任何语言