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)
我正在尝试编写一个小型机器人程序,它可以识别图像,然后在屏幕上存在该图像时执行命令。这与 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)