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