簡體   English   中英

SyntaxError:Python 3.6中“ if”命令的語法無效(PyAutoGUI代碼)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM