![](/img/trans.png)
[英]Closure Linter Windows Python 3.6 “SyntaxError: invalid syntax”
[英]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”命令上,我不知道為什么。 我已經在線觀看了一些教程,但似乎並不能解決我的問題。 關於為什么發生這種情況的任何建議,或者我如何可以對這種想法進行編碼。
真正的問題不是if
語句本身,而是由於前面的語句。 if loadingbattle == (2294,1165): pyautogui.click(1513,75)
在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
其中分配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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.