SyntaxError: invalid syntax on an 'if' command in Python 3.6 (PyAutoGUI code)

SyntaxError: invalid syntax on an 'if' command in Python 3.6 (PyAutoGUI code)

我正在尝试编写一个小型机器人程序,它可以识别图像,然后在屏幕上存在该图像时执行命令。这与 PyAutoGUI 密切相关。下面附加的代码给出了 'if' 命令的语法错误:

loadingbattle = pyautogui.locateCenterOnScreen('/Users/devious/loading battle.png');\
if loadingbattle == (2294,1165): pyautogui.click(1513,75)

我是编程新手,所以我不确定问题所在,或者它是否是对我上面提到的想法进行编码的正确方法。这只是一个开始,通过在识别图像后单击某个地方来查看代码是否有效,但是 'if' 命令出现语法错误,我不知道为什么。我在网上看了一些教程,但似乎并没有解决我的问题。任何关于为什么会发生这种情况的建议,或者我可以如何编写这个想法的任何建议都将受到赞赏。

在Python中编码时,需要缩进的要求。它迫使我们用合格的缩进编码。请参阅下面的代码:

if loadingbattle == (2294,1165):                          
    pyautogui.click(1513,75) 

真正的问题不是 if 语句本身,而是因为前面的语句。做 if loadingbattle == (2294,1165): pyautogui.click(1513,75) 如果在 Python 中完全没问题,但按照你的方式做是行不通的,你需要将其更改为:

loadingbattle = pyautogui.locateCenterOnScreen('/Users/devious/loading battle.png')
if loadingbattle == (2294,1165): pyautogui.click(1513,75)

通过删除 ;\,因为

; 意味着它是行尾,没有必要在每个换行符处都包含它。相当于“\n

\ 表示代码实际上将继续到下一行(转义换行符)

那么当 Python 解释器读取代码时,您的代码中实际发生的是:

loadingbattle = pyautogui.locateCenterOnScreen('/Users/devious/loading battle.png');if loadingbattle == (2294,1165): pyautogui.click(1513,75)

当您尝试阅读时,它绝对有意义。由于您不知道要将 loadingbattle 分配给什么,以及 if 块在哪里结束。这就是缩进在 python.

中很重要的原因

通常情况下,您希望这样写以清楚地显示缩进(但实际上这对您的情况并不重要,两者都应该可以正常工作):

loadingbattle = pyautogui.locateCenterOnScreen('/Users/devious/loading battle.png')
if loadingbattle == (2294,1165): 
    pyautogui.click(1513,75)