我一直在研究python脚本来检测按键。它使用pygame模块。我的问题是按下向上,向下和向右箭头键而不是左键。我见过this然而它对我的问题没有帮助。问题是,当我按向上,向下或向右键时,它会打印相应的文本,然后执行else语句以及用这个奇怪的符号替换even.unicode,无论何时按下左箭头键,它都打印出来#34;键是Left& #34;并且没有,像它应该的那样。按下键盘上的任何普通键都可以正常工作。奇怪的HUH。如果你能发现我所做的嘘声真的很棒。我的代码在下面,如果安装了pygame,你可以将其复制并粘贴到2.7空闲状态,看看我的意思。
#Python key detector, requires pygame module, uses python 2.7
#Import libraries
import pygame
import sys
from pygame.locals import *
#Init display
pygame.display.init()
#Infinite loop
while (True):
#Event detector
for event in pygame.event.get():
#If a key is pressed
if event.type == KEYDOWN:
if event.key == 99:
sys.exit()
if event.key == 273:
print "The key is Up"
if event.key == 275:
print "The key is Right"
if event.key == 274:
print "The key is Down"
if event.key == 276:
print "The key is Left"
else:
print "The key is " + event.unicode
答案 0 :(得分:6)
您需要使用elif
;否则这只是一个新检查,如果最后else
子句失败,则执行if
语句。
#Event detector
for event in pygame.event.get():
#If a key is pressed
if event.type == KEYDOWN:
if event.key == 99:
sys.exit()
elif event.key == 273:
print "The key is Up"
elif event.key == 275:
...