Python键盘库无法区分';向下';和';右+;向下';

Python键盘库无法区分';向下';和';右+;向下';,python,keyboard-python,Python,Keyboard Python,这是我的代码: import keyboard as kb def key_selected(): if kb.is_pressed('shift+s+down'): return 'True1' elif kb.is_pressed('shift+s+right+down'): return 'True2' else: return 'NOTHING' while True: x = k

这是我的代码:

import keyboard as kb

def key_selected():
    if kb.is_pressed('shift+s+down'):
        return 'True1' 
    
    elif kb.is_pressed('shift+s+right+down'):
        return 'True2'
    
    else:
        return 'NOTHING' 

while True:
    x = key_selected()
    print(x)

即使我按下shift+s+right+down键,它也会返回True1。如何解决这个问题?

elif的问题是,只有在先前的条件为
False
时,才会测试条件。因此,当您按下
shift+s+down+right
时,如果按下了kb.('shift+s+down'),则会触发
,因为您按下了
shift
s
down
,而忽略了
elif

如果您颠倒顺序,以便首先检查更具体的条件,它应该可以正常工作

def key_selected():
    if kb.is_pressed('shift+s+right+down'):
        return 'True2' 
    
    elif kb.is_pressed('shift+s+down'):
        return 'True1'
    
    else:
        return 'NOTHING'

这可能是一个简单的逻辑问题。如果按下
shift
s
right
down
键,则按下
shift
s
down
键也是正确的。尝试重新排列您的
if
语句,以便它首先检查更具体的条件。简短回答:颠倒条件的顺序。组合
“shift+s+right+down”
“shift+s+down”
的一个更具体的“子集”。因此,如果所有ELIF都被ifs替换,它也应该工作,对吗?@Saat Yes,但它会一直检查所有条件,因此按下
shift+s+down+right
将触发
if
shift+s+down
if