这是我的代码:
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)
即使我按下"ift+s+right+down">,它也会返回True1。如何解决此问题?
elif
的问题是,只有当以前的条件是False
时,才会测试该条件。因此,当您按下shift + s + down + right
时,if kb.is_pressed('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'
做你期望的事。