我正在尝试编写一个可以识别图像的小型bot程序,然后在屏幕上存在该图像时执行命令。这与PyAutoGUI有很大关系。下面的attatched代码会在' if'上给出语法错误。命令:
loadingbattle = pyautogui.locateCenterOnScreen('/Users/devious/loading battle.png');\
if loadingbattle == (2294,1165): pyautogui.click(1513,75)
我是编程的新手,所以我不确定问题,或者是否是编码我上面提到的想法的正确方法。这只是一个开始,看看代码是否通过在识别出图像后单击某处而起作用,但语法错误发生在'如果'命令,我不知道为什么。我已经在线观看了一些教程,但似乎并没有解决我的问题。我们赞赏任何关于为什么会发生这种情况的建议,或者我如何编写这个想法。
答案 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)