即使'如果'是真的

时间:2015-08-24 09:51:37

标签: python

我一直在研究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

1 个答案:

答案 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:
            ...