SyntaxError:' if'上的语法无效Python 3.6中的命令(PyAutoGUI代码)

时间:2017-04-25 04:19:17

标签: python python-3.x bots pyautogui

我正在尝试编写一个可以识别图像的小型bot程序,然后在屏幕上存在该图像时执行命令。这与PyAutoGUI有很大关系。下面的attatched代码会在' if'上给出语法错误。命令:

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

我是编程的新手,所以我不确定问题,或者是否是编码我上面提到的想法的正确方法。这只是一个开始,看看代码是否通过在识别出图像后单击某处而起作用,但语法错误发生在'如果'命令,我不知道为什么。我已经在线观看了一些教程,但似乎并没有解决我的问题。我们赞赏任何关于为什么会发生这种情况的建议,或者我如何编写这个想法。

2 个答案:

答案 0 :(得分:1)

真正的问题不是if语句本身,而是因为之前的陈述。如果在Python中完全没问题,请执行if loadingbattle == (2294,1165): pyautogui.click(1513,75),但按照自己的方式进行操作不起作用,您需要将其更改为:

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)

答案 1 :(得分:0)

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

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