警告:我的英语太烂了,而且我对python真的很陌生
因此,我正在编写一个需要按特定键(例如空格键)才能继续循环的程序,例如:
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
按下的键。至少我做不到。
还有一种方法可以同时将keyboard
和pynput
导入计算机吗?安装keyboard
后,我的VS代码会忽略pynput
。
编辑:这是我针对此问题的解决方案,但这是超级转储:
while True:
if keyboard.is_pressed('space'):
while True:
if not keyboard.is_pressed('space'):
break
break
是否存在执行相同功能的函数?
答案 0 :(得分:1)
由于它仅检测按键,因此请使用标志。我认为这样可以做到: 1.设置布尔变量以检测单个按键 2.如果按键,布尔值将设置为true 3.如果bool是true而不是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
不知道这是怎么做的,但我想您可以从中得到帮助。祝你好运!