旨在在函数达到某个值时中断函数的 Elif 条件不起作用

问题描述 投票:0回答:1

我一直在开发一个程序,检测按下“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
....
python python-3.x keyboard key pynput
1个回答
0
投票

仅当由于 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()
© www.soinside.com 2019 - 2024. All rights reserved.