如何在while循环中处理if语句 - Python

Posted

技术标签:

【中文标题】如何在while循环中处理if语句 - Python【英文标题】:How to handle if statement inside a while loop - Python 【发布时间】:2021-08-05 17:47:57 【问题描述】:

我正在为我自己的游戏创建一个游戏机器人,在这个(附图在下面)游戏中,这个火柴人随机转身并转身离开。与此同时,如果他可以使用点击按钮窃取他的钱当你点击按钮时转身,游戏就结束了。

我要执行的是,使用 pyautogui 库获取其前额的 x,y 值和 RGB 的像素 R 值,如果它匹配其前额的 R 值,我将执行鼠标点击。如果没有也一样。

我遇到的问题是,当我尝试运行以下脚本时,它运行良好,但鼠标点击事件被触发了不止一次。

导入键盘 导入pyautogui 虽然不是keyboard.is_pressed('q'): 如果 pyautogui.pixel(687, 144)[0] != 255: print("看着你") pyautogui.click(681, 662) 别的: print("不看你") pyautogui.click(681,662)

我以以下方式尝试了带有 bool 变量的 on 脚本,但一旦这些变量变为false 之后程序无法运行。

导入键盘 导入pyautogui boolval1=真 boolval2=真 虽然不是keyboard.is_pressed('q'): 如果 pyautogui.pixel(687, 144)[0] != 255: 如果 boolval1: print("看着你") pyautogui.click(681, 662) boolval1 = 假 别的: 如果 boolval2: print("不看你") pyautogui.click(681,662) boolval2 = 假

每次这个火柴人转身离开时我只能单击一下吗??

这里我附上了游戏的草图以得到一个简短的想法

【问题讨论】:

【参考方案1】: a = 真 虽然不是keyboard.is_pressed('q'): b = 假 如果 pyautogui.pixel(687, 144)[0] == 255: b = 真 如果 b != a: 打印(“点击”) a = b

我能够找到答案,这可能会节省时间

【讨论】:

【参考方案2】:

您是否尝试过将代码包装在无限循环中

while True:
    # do stuff with is pressed and clicks

只是一个建议,但我认为你应该查看 MVC 设计模式, 之后这将是一团糟:

        if pyautogui.pixel(687, 144)[0] != 255:

【讨论】:

我不处理任何数据交换来使用 MVC,而 True: 是我在使用时使用的

以上是关于如何在while循环中处理if语句 - Python的主要内容,如果未能解决你的问题,请参考以下文章

如何在while循环中使用if,else语句从变量中读取一系列值进行计算

ECMAscript之if..else语句,for循环,while循环,switch,case语句,异常处理

前端—— JavaScript基础操作:if语句for循环while循环for...infor...of异常处理函数事件JS选择器JS操作页面样式

如何从while循环内的if条件中断while循环?

第二节 Python基础之变量,运算符,if语句,while和for循环语句

If语句在While True循环(Python)中返回False