我一直在开发一个程序,检测按下“enter”的次数,问题是当变量达到某个值时,应该中断函数的 elif/if 条件会不断计算多次按下“enter”而不是破坏该功能。
from pynput import keyboard
keystroke = 0
def on_release(key):
print(key)
global keystroke
if key == keyboard.Key.enter:
keystroke += 1 #this sums to the variable keystroke +1.
print(keystroke)
elif keystroke > 3: #This intends to break the fuction when keystroke reaches or surpasses 3.
return False
with keyboard.Listener( #Calling the function here.
on_press=on_press,
on_release=on_release) as listener:
listener.join()
......
这是输出。
Output
key.enter
1
key.enter
2
key.enter
3
key.enter
4
....
仅当由于 elif 而按下 Enter 以外的键时,当前程序才会检查击键次数。
相反,您应该用单独的 if 语句替换 elif。
另外,如果您希望该函数在击键次数达到 3 时中断,请将 大于 替换为 大于等号 :
from pynput import keyboard
keystroke = 0
def on_release(key):
print(key)
global keystroke
if key == keyboard.Key.enter:
keystroke += 1 #this sums to the variable keystroke +1.
print(keystroke)
if keystroke >= 3: #This intends to break the fuction when keystroke reaches or surpasses 3.
return False
with keyboard.Listener( #Calling the function here.
on_press=on_press,
on_release=on_release) as listener:
listener.join()