Python 为什么代码末尾的循环不起作用?
这是我的密码:Python 为什么代码末尾的循环不起作用?,python,python-3.x,loops,pynput,Python,Python 3.x,Loops,Pynput,这是我的密码: import time from pynput import keyboard def on_press(key): if 'char' in dir(key): # check if char method exists, if key.char == 'q': # check if it is 'q' key print("1") def on_release(key): if 'char' in di
import time
from pynput import keyboard
def on_press(key):
if 'char' in dir(key): # check if char method exists,
if key.char == 'q': # check if it is 'q' key
print("1")
def on_release(key):
if 'char' in dir(key): # check if char method exists,
if key.char == 'q': # check if it is 'q' key
print("2")
# Collect events until released
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
string = 2
while True:
time.sleep(1)
if string == 2:
print ("2")
else:
print ("1")
我正在尝试做一个循环,在上面的代码之后无限期地打印“2”。我真的是一个编程新手,如果这很明显,我很抱歉。所以基本上你想做一个程序,以1秒的间隔无限期地打印出你在键盘上按下的键,下面是我的方法(我将使用键盘模块,因为我没有pynput及其更简单的经验): 所以这里的x等于你刚才在键盘上按的值,只要你不按其他任何键,它就不会改变 所以我们在这里使用了while 1,因为整数1总是等于整数1,它总是真的,基本上使用while true,没有区别,尽管您可能希望在主循环中使用while true,因为它比while 1更明显 它会使程序停止1秒钟 如果x='2':也可以使用整数,但我只想在那里的内部使用它
如果x等于2,则打印2您不会在任何地方更改
字符串
。是的,我稍后会添加它,我希望现在只打印“2”Indefenetlyi如果你想要调试帮助,你需要提供它的确切含义是什么?它不起作用?它永远不会进入while循环,因为它永远不会退出键盘侦听器。谢谢你的回答,但我最初只是想按住一个键,然后在按下和释放键时打印一些内容。在这里,我尝试jusi don’当我按下或松开某个键时,不会有一个字符串发生变化,并且会有一个循环检测到它。如果我按住该键,我的操作系统就会对该键进行垃圾邮件处理,结果代码检测到我在按住某个键时多次按下该键。在这篇文章中,我说我希望循环无限期地打印2,以便我可以看到该循环作品
import time
import keyboard
x = keyboard.read_key()
while 1:
time.sleep(1)
if x == '2':
print(2)