SyntaxError:python3.6中“if”命令的语法无效(PyAutoGUI代码)

2024-06-09 15:39:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写一个小机器人程序,可以识别一个图像,然后执行一个命令,如果该图像存在于屏幕上。autopygui与此密切相关。下面附加的代码给出了“if”命令的语法错误:

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

我对编程还不熟悉,所以我不确定这个问题,也不确定它是否是我上面提到的代码的正确方法。这只是一个开始,看看代码在识别出图像后,单击某个地方是否有效,但是“if”命令出现语法错误,我不知道原因。我在网上看了一些教程,但似乎不能解决我的问题。任何关于为什么会发生这种情况的建议,或者我可以如何编写这个想法的建议,我们将不胜感激。在


Tags: 代码图像命令程序if屏幕机器人users
2条回答

真正的问题不是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解释器读取代码时,代码中实际发生的情况是:

^{pr2}$

当你试着读的时候,它是绝对有意义的。因为您无法告诉您要将loadingbattle分配给什么,并且if块在哪里结束。这就是为什么缩进在python中很重要。在

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

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

在用Python编写代码时,需要使用缩进。它迫使我们用限定的缩进来编码。参见以下代码:

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

相关问题 更多 >