你如何使用msvcrt.getch来提取和使用输入?

时间:2013-03-24 14:19:18

标签: python python-3.x

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

1 个答案:

答案 0 :(得分:3)

您需要解码将返回的值转换为str对象:

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

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

  

该模块实现了控制台I / O api的普通字符和宽字符变体。普通的API仅处理ASCII字符,对国际化应用程序的用途有限。应尽可能使用宽字符API。

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