Python Pynput侦听器不';不允许使用字母数字字符的if语句

Python Pynput侦听器不';不允许使用字母数字字符的if语句,python,keyboard,keyboard-events,pynput,Python,Keyboard,Keyboard Events,Pynput,我正在尝试用Python创建一个钢琴键盘,使用Jazz插件发送MIDI消息,并使用Pynput侦听器注册击键 我的问题是我希望最低的音符在Z键上。我似乎找不到办法让我的if语句在按下时识别z或任何其他字母数字键。它与特殊的键(如LCtrl)一起工作 我试图找到密钥的数据类型。当键是特殊字符时,类型为,但当它是字母数字字符时,类型为 这不起作用: if key == pynput.keyboard._win32.KeyCode.z: 将其替换为“z”或“z”或仅z也不起作用 代码如下: def

我正在尝试用Python创建一个钢琴键盘,使用Jazz插件发送MIDI消息,并使用Pynput侦听器注册击键

我的问题是我希望最低的音符在Z键上。我似乎找不到办法让我的if语句在按下时识别z或任何其他字母数字键。它与特殊的键(如LCtrl)一起工作

我试图找到密钥的数据类型。当键是特殊字符时,类型为
,但当它是字母数字字符时,类型为

这不起作用:

if key == pynput.keyboard._win32.KeyCode.z:
将其替换为“z”或“z”或仅z也不起作用

代码如下:

def on_press(key):
    print(key, "pressed")
    if key == Key.ctrl_l:
        jazz.MidiOut(0x90, 30, 127)
    if key == "'z'":
        jazz.MidiOut(0x90, 60, 127)

def on_release(key):
    print(key, "released")
    if key == Key.esc:
        return False

with Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()
当按下LCtrl时,音符按预期播放,并打印
键。按下ctrl\u l时
。按下z键时,它会打印
“z”键,但不会播放音符。对我来说,它为什么不能识别击键是没有道理的


任何帮助都将不胜感激:)

您可以在
KeyCode

>>> type(keyboard._win32.KeyCode.from_char('z'))
<class 'pynput.keyboard._win32.KeyCode'>
>>键入(键盘.win32.KeyCode.from_char('z'))

就是这么简单的

'z'=Char 122?
if str(key) == "'z'":