對看似有效的Python 程式碼中的「SyntaxError: Invalid Syntax」進行故障排除
當在一行中遇到「SyntaError : invalid syntax」錯誤時如果程式碼看起來有效,請謹慎檢查前一行。此錯誤可能是由於上一行中的括號不平衡導致的,這可能會結轉並觸發錯誤。
以以下程式碼為例:
fi2=0.460*scipy.sqrt(1-(Tr-0.566)**2/(0.434**2)+0.494) guess = Pmin+(Pmax-Pmin)*((1-w**2)*fi1+(w**2)*fi2)
這裡,第 2 行報告錯誤「無效語法」。然而,經過仔細檢查,很明顯第 1 行有三個左括號,但只有兩個閉括號。
open parentheses: 1 2 3 # count open parentheses v v v # forked lines leading to parentheses fi2=0.460*scipy.sqrt(1-(Tr-0.566)**2/(0.434**2)+0.494) ^ ^ # where error might be closed parentheses: 1 2 # count closed parentheses
錯誤的第1 行應更正為:
fi2=0.460*scipy.sqrt(1-(Tr-0.566)**2/(0.434**2) + 0.494) # add missing parenthesis
注意在舊版本的Python(3.9 之前)中,錯誤訊息在識別問題位置方面並不那麼精確。然而,在 Python 3.9 及更高版本中,錯誤訊息正確指出了問題的根源:
File "prog.py", line 1 xyzzy = (1 + ^ SyntaxError: '(' was never closed
以上是為什麼我看似正確的 Python 程式碼會拋出「SyntaxError:無效語法」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!