Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当按下键时返回true的Python代码如果释放则返回false?_Python_If Statement_While Loop - Fatal编程技术网

当按下键时返回true的Python代码如果释放则返回false?

当按下键时返回true的Python代码如果释放则返回false?,python,if-statement,while-loop,Python,If Statement,While Loop,我需要一个python代码,如果按下并按住某个键,则返回一个if语句为true,如果释放该键,则返回false。我想这段代码能够执行时,按下并按住键 在某些系统上,当按下键盘时,它可以重复发送键事件,因此使用pynput您只需要此键(对于键“a”) 但有时重复不起作用,或者重复密钥需要很长时间,您可以使用全局变量作为密钥来保持True/False from pynput.keyboard import Listener, KeyCode import time # --- functions

我需要一个python代码,如果按下并按住某个键,则返回一个if语句为true,如果释放该键,则返回false。我想这段代码能够执行时,按下并按住键

在某些系统上,当按下键盘时,它可以重复发送键事件,因此使用
pynput
您只需要此键(对于键“a”)

但有时重复不起作用,或者重复密钥需要很长时间,您可以使用全局变量作为密钥来保持True/False

from pynput.keyboard import Listener, KeyCode
import time

# --- functions ---

def get_pressed(event):
    global key_a # inform function to use external/global variable instead of local one

    if event == KeyCode.from_char('a'):
        key_a = True

def get_released(event):
    global key_a

    if event == KeyCode.from_char('a'):
        key_a = False

# --- main --

key_a = False  # default value at start 

listener = Listener(on_press=get_pressed, on_release=get_released)
listener.start() # start thread with listener

while True:

    if key_a:
        print('hold pressed: a')

    time.sleep(.1)  # slow down loop to use less CPU

listener.stop() # stop thread with listener
listener.join() # wait till thread ends work

显示您的代码和您在Google中找到的内容。似乎类似/相同:更多关于键盘的详细信息可在此处找到:当您按下键时,您可以设置变量
pressed=True
,当您释放按键时,您可以设置
pressed=False
,在这两种方法之间,您可以检查
pressed
以查看是否仍保持按键。@furas我是python新手,您能解释一下这看起来是如何构建的吗?您使用什么模块来按键?PyGame,pyglet,pynput,其他?
from pynput.keyboard import Listener, KeyCode
import time

# --- functions ---

def get_pressed(event):
    global key_a # inform function to use external/global variable instead of local one

    if event == KeyCode.from_char('a'):
        key_a = True

def get_released(event):
    global key_a

    if event == KeyCode.from_char('a'):
        key_a = False

# --- main --

key_a = False  # default value at start 

listener = Listener(on_press=get_pressed, on_release=get_released)
listener.start() # start thread with listener

while True:

    if key_a:
        print('hold pressed: a')

    time.sleep(.1)  # slow down loop to use less CPU

listener.stop() # stop thread with listener
listener.join() # wait till thread ends work