使用键盘模块时检测按键释放

Detect key release while using keyboard module

警告:我的英语很烂而且我对 python
真的很陌生 所以我正在制作一个需要特定按键(例如 space 栏)才能继续循环的程序,例如:

for i in *some sort of list*: 
    print(something)
    *waits for a key*

我最后一行的方法是键盘模块(不是来自 pynput),它有函数is_pressed。当我按下一个键时,我得到了输出:

*something*
*something*
*something*
*repeats for several times*

我知道函数检测的是按键而不是按下和释放,所以我一松开输出就停止了。但这不是我的程序的工作方式。每次我释放该键时它都应该响应。不幸的是,我找不到一个名为 is_released 的函数,模块 pynput 无法获取我使用 Listener 按下的键。至少我不能。

此外,有没有办法让 keyboardpynput 都可以导入计算机?安装 pynput 后,我的 VS Code 会忽略 keyboard

编辑:这是我对问题的解决方案,但它超级愚蠢:

while True:
    if keyboard.is_pressed('space'):
        while True:
            if not keyboard.is_pressed('space'):
                break
        break

有没有做同样事情的函数?

因为它只检测按键,所以使用标志。我认为这样的事情可以做到: 1.制作一个布尔变量来检测单个按键 2. 如果按键被按下,bool 将被设置为 true 3. 如果 bool 为真而不是 key.is_pressed:做你的事 4.运行后设置bool为false

例如,在代码中,将是这样的:

keypress = False
key = 'space'
while True:
    if keypress and not keyboard.is_pressed(key):
        '''DO YOUR THING'''
        #beak out of while loop?
        keypress = False
        break
    elif keyboard.is_pressed(key) and not keypress:
        keypress = True

不知道您是否会这样做,但我想您可以理解我的意思。祝你好运!