我是Python的新手,我刚刚用Python制作了一个游戏和一个菜单。问题是,使用(raw_)input()要求我在每次按键后都按下Enter键,我想这样做,以便按下箭头将立即选择下一个菜单项,或者在游戏中向下移动。此刻,它要求我喜欢键入“
down”,然后按Enter。我也做了很多研究,但我不希望仅下载大型模块(例如pygame)来实现单个keyDown()方法。有没有更简单的方法,而我却找不到?
编辑:
刚发现那msvcrt.getch()
可以解决问题。它不是keyDown(),但是可以工作。但是,我也不确定如何使用它,这似乎很奇怪,对您有帮助吗?这是我现在得到的:
from msvcrt import getch
while True:
key = getch()
print(key)
但是,它一直给我所有这些无用的字节,例如,向下箭头是这样的:
b'\xe0'
b'P'
而且我不知道如何使用它们,我试图与chr()进行比较,甚至使用ord(),但实际上无法进行任何比较。我想做的基本上是这样的:
from msvcrt import getch
while True:
key = getch()
if key == escape:
break
elif key == downarrow:
movedown()
elif key == 'a':
...
等等…有什么帮助吗?
通过自己测试所有内容来弄清楚。找不到关于它的任何主题,所以我将解决方案留在这里。这可能不是唯一的,甚至不是最好的解决方案,但是它对我来说是可行的(在getch的限制内),总比没有好。
注意:keyDown()
仍然可以识别所有按键和实际按键的属性。
解决方案:
使用ord()
-function首先将getch()
int转换为整数(我想它们是虚拟键码,但不太确定),然后将结果与表示所需键的实际数字进行比较。另外,如果需要,我可以chr()
在返回的数字周围添加一个额外的数字,以便将其转换为字符。但是,我主要使用向下箭头,esc等,因此将它们转换为字符会很愚蠢。这是最终代码:
from msvcrt import getch
while True:
key = ord(getch())
if key == 27: #ESC
break
elif key == 13: #Enter
select()
elif key == 224: #Special keys (arrows, f keys, ins, del, etc.)
key = ord(getch())
if key == 80: #Down arrow
moveDown()
elif key == 72: #Up arrow
moveUp()
另外,如果其他人需要,您可以轻松地从google中找到键码,或者使用python并只需按以下键即可:
from msvcrt import getch
while True:
print(ord(getch()))
本文向大家介绍Python读取键盘输入的2种方法,包括了Python读取键盘输入的2种方法的使用技巧和注意事项,需要的朋友参考一下 Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘。如下: 1.raw_input 2.input raw_input函数 raw_input() 函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符): 这将提示你输入任意字符串,然后
本文向大家介绍python读取xlsx的方法,包括了python读取xlsx的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇python读取xlsx的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
本文向大家介绍Python按行读取文件的简单实现方法,包括了Python按行读取文件的简单实现方法的使用技巧和注意事项,需要的朋友参考一下 1:readline() 一行一行得从文件读数据,显然比较慢; 不过很省内存; 测试读10M的sample.txt文件,每秒大约读32000行; 2:fileinput 写法简单一些,不过测试以后发现每秒只能读13000行数据,效率比上一种方法慢了两倍多; 3
本文向大家介绍Python按行读取文件的实现方法【小文件和大文件读取】,包括了Python按行读取文件的实现方法【小文件和大文件读取】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python按行读取文件的实现方法。分享给大家供大家参考,具体如下: 小文件: 大文件: 更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python文本文件操
本文向大家介绍JavaScript取得键盘按下方向键是哪个的方法,包括了JavaScript取得键盘按下方向键是哪个的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript取得键盘按下方向键是哪个的方法。分享给大家供大家参考。具体如下: 这里通过创建一个event.keyCode对象,可有效获取键盘上的方向键,运行代码后,点击键盘上的任意方向键,网页会以Alert的方式返
问题内容: 是否有可能使系统似乎已按下某个键,例如我需要使按键被按下数千次,而手动执行该操作很费时间,我想写点东西来做对我来说,我唯一了解的是Python。 更好的表达方式是,我需要模拟一个按键,IE无法捕获按键。 更多信息(按要求):我正在运行Windows XP,需要将密钥发送到另一个应用程序。 问题答案: 安装pywin32扩展。然后,您可以执行以下操作: 搜索WScript.Shell对象