我的代码不是';t工作(python、pyautogui)

我的代码不是';t工作(python、pyautogui),python,pyautogui,Python,Pyautogui,代码只工作一次,即使我在循环中设置了它,我需要修改什么才能使它工作呢 import pyautogui, time time.sleep(5) while True: pyautogui.press("e") pyautogui.click() if w or a or s or d: stop() 假设从您给出的其他回复中,您希望按下e并单击直到按下w、a、s或d,如果按下这四个按钮之一,您希望程序结束。如果您想这样做,可以使用p

代码只工作一次,即使我在循环中设置了它,我需要修改什么才能使它工作呢

import pyautogui, time
time.sleep(5)
while True: 
    pyautogui.press("e")
    pyautogui.click()
    if w or a or s or d:
        stop()

假设从您给出的其他回复中,您希望按下
e
并单击
直到按下
w
a
s
d
,如果按下这四个按钮之一,您希望程序结束。如果您想这样做,可以使用python中的
键盘
库。按下键盘(键)
功能应检查按下的键是否为上述四个键中的任何一个,如果是,将终止程序。您可以通过执行
pip install keyboard
来安装库,例如,您可以这样重写程序:

导入pyautogui、时间、键盘
时间。睡眠(5)
尽管如此:
键盘。按下并释放(“e”)。#这与pyautogui相同。按下(“e”)
pyautogui.click()
如果(键盘按下('w')或键盘按下('a'))或(键盘按下('s')或键盘按下('d')):
break#这是您的stop()函数

编辑:因为我之前只编辑了代码,所以我编辑了注释并给出了正确的解释。

什么是
w
a
s
,和
d
?您是否打算将它们与一个变量进行比较?wasd是游戏的控件它们包含哪些值?它们是弦吗?如果是这样,它们将始终为真(假设它们为非空),这意味着该条件将始终为真,并且
stop
将始终运行。你在这种情况下的意图是什么?假设E是一个连续的点击,wasd是停止程序是的。但是这四个变量包含什么呢?请出示a,因为您的代码现在不完整,所以我们只能猜测您的意图和实际代码是什么。我按了w a s和d,程序没有停止。如果您想通过输入而不是硬编码输入字母,您必须写:
letter=input(“输入字母”)
而不是:
letter=input“e”
当我按w a s或d时,程序没有停止,我希望它按e,但当我按w a s或d时,我希望它停止。使用
如果“wasd”中的字母:
来简化条件表达式。@DylanGuthrie好的,所以我编辑了我的响应,现在它应该完成您想要的。