python中出現(xiàn)invalid?syntax報(bào)錯的幾種原因分析
出現(xiàn)invalid syntax報(bào)錯的幾種原因
這篇文章旨為剛接觸python不久的朋友,提供一點(diǎn)幫助,請?jiān)跈z查代碼沒有主要問題時再看是否存在以下問題。
一般來說,寫完代碼運(yùn)行時,如果代碼中有錯誤,解釋器會提示錯誤信息,按照提示信息,一般很快可以找出錯誤,進(jìn)行修改。但也有一些時候錯誤提示的信息不是那么明確,代碼檢查了幾遍仍找不出問題,就比較頭疼了。今天我們來說一個常見的invalid syntax,在寫代碼的過程中,哪些小細(xì)節(jié)錯誤容易導(dǎo)致invalid syntax報(bào)錯。更多的原因,后續(xù)逐漸補(bǔ)充......
1.符號使用不正確
例如:只寫了半個括號,使用了中文符號等
像下面的代碼中,76行少了一個右括號。
…… else: header = "HTTP/1.1 200 OK\r\n" header += "\r\n" body = "hahahaha" response = header + body new_socket.send(response.encode("utf-8") new_socket.close() def run_forever(self): while True: new_socket, client_addr = self.tcp_server_socket.accept() p = multiprocessing.Process(target=self.service_client, args=(new_socket,)) p.start() new_socket.close() ……
運(yùn)行代碼,則會報(bào)錯:
File "w01.py", line 78
new_socket.close()
^
SyntaxError: invalid syntax
其實(shí),78行并沒有錯誤,這時我們就在78行附近尋找,看是否有成對的符號(如括號)未成對使用的情況。在76行補(bǔ)全右括號后,代碼運(yùn)行正常。
有些解釋器會有自動補(bǔ)全符號的功能。有些則沒有,這時對于新手朋友要特別注意,在寫成對的符號時(例如括號、引號等)一定要一次把一對符號寫完,再在符號中填寫內(nèi)容,避免因這種情況出現(xiàn)bug,后續(xù)檢查花費(fèi)大量時間。
2.代碼縮進(jìn)問題
python是一種嚴(yán)格依賴縮進(jìn)的語言,如果縮進(jìn)不正確或縮進(jìn)格式不統(tǒng)一,一般錯誤信息會明確告訴你,但有時也會出現(xiàn)invalid syntax報(bào)錯。
所謂縮進(jìn)不正確,python的縮進(jìn)是四個空格或一個TAB,如果縮進(jìn)三個空格,一定報(bào)錯
所謂縮進(jìn)格式,即不能空格和TAB混用。如果不清楚是否存在混用,可以使用sublime統(tǒng)一調(diào)整即可。
invalid syntax——無效語法
錯誤代碼塊
num_1=float(input(“請輸入第一個數(shù):”)) num_2=float(input(“請輸入第二個數(shù):”)) c=(input(“請選擇運(yùn)算類型:1.+ 2- 3.* 4./ 5.% :”)) if c==+ out=num_1 + num_2 if c==-: out=num_1 - num_2 if c==*: out=num_1 * num_2 if c==/: out=num_1 / num_2 if c==%: out=num_1 % num_2 print(“運(yùn)算結(jié)果是:”,out)`
出現(xiàn)錯誤:invalid syntax
在此程序中,把“、+、-、、/等運(yùn)算符直接用在if條件中造成報(bào)錯,故字符串類型和數(shù)值類型*不一樣,應(yīng)用“+”、“-”符號作為判斷條件。
調(diào)整后代碼
num_1=float(input(“請輸入第一個數(shù):”)) num_2=float(input(“請輸入第二個數(shù):”)) c=(input(“請選擇運(yùn)算類型:1.+ 2- 3.* 4./ 5.% :”)) if c=="+": out=num_1 + num_2 if c=="-": out=num_1 - num_2 if c=="*": out=num_1 * num_2 if c=="/": out=num_1 / num_2 if c=="%": out=num_1 % num_2 print(“運(yùn)算結(jié)果是:”,out)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中.py文件打包成exe可執(zhí)行文件詳解
這篇文章主要給大家介紹了在Python中.py文件打包成exe可執(zhí)行文件的相關(guān)資料,文中介紹的非常詳細(xì),相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03Python面向?qū)ο蟪绦蛟O(shè)計(jì)之私有屬性及私有方法示例
這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計(jì)之私有屬性及私有方法,結(jié)合實(shí)例形式分析了Python私有屬性及私有方法的相關(guān)使用方法及操作注意事項(xiàng),需要的朋友可以參考下2019-04-04卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展及各模型的優(yōu)缺點(diǎn)及說明
這篇文章主要介紹了卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展及各模型的優(yōu)缺點(diǎn)及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02