網站首頁 編程語言 正文
出現invalid syntax報錯的幾種原因
這篇文章旨為剛接觸python不久的朋友,提供一點幫助,請在檢查代碼沒有主要問題時再看是否存在以下問題。
一般來說,寫完代碼運行時,如果代碼中有錯誤,解釋器會提示錯誤信息,按照提示信息,一般很快可以找出錯誤,進行修改。但也有一些時候錯誤提示的信息不是那么明確,代碼檢查了幾遍仍找不出問題,就比較頭疼了。今天我們來說一個常見的invalid syntax,在寫代碼的過程中,哪些小細節錯誤容易導致invalid syntax報錯。更多的原因,后續逐漸補充......
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() ……
運行代碼,則會報錯:
?File "w01.py", line 78
? ? new_socket.close()
? ? ? ? ? ? ?^
SyntaxError: invalid syntax
其實,78行并沒有錯誤,這時我們就在78行附近尋找,看是否有成對的符號(如括號)未成對使用的情況。在76行補全右括號后,代碼運行正常。
有些解釋器會有自動補全符號的功能。有些則沒有,這時對于新手朋友要特別注意,在寫成對的符號時(例如括號、引號等)一定要一次把一對符號寫完,再在符號中填寫內容,避免因這種情況出現bug,后續檢查花費大量時間。
2.代碼縮進問題
python是一種嚴格依賴縮進的語言,如果縮進不正確或縮進格式不統一,一般錯誤信息會明確告訴你,但有時也會出現invalid syntax報錯。
所謂縮進不正確,python的縮進是四個空格或一個TAB,如果縮進三個空格,一定報錯
所謂縮進格式,即不能空格和TAB混用。如果不清楚是否存在混用,可以使用sublime統一調整即可。
invalid syntax——無效語法
錯誤代碼塊
num_1=float(input(“請輸入第一個數:”)) num_2=float(input(“請輸入第二個數:”)) c=(input(“請選擇運算類型: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(“運算結果是:”,out)`
出現錯誤:invalid syntax
在此程序中,把“、+、-、、/等運算符直接用在if條件中造成報錯,故字符串類型和數值類型*不一樣,應用“+”、“-”符號作為判斷條件。
調整后代碼
num_1=float(input(“請輸入第一個數:”)) num_2=float(input(“請輸入第二個數:”)) c=(input(“請選擇運算類型: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(“運算結果是:”,out)
原文鏈接:https://www.cnblogs.com/lenfoo/p/11251517.html
相關推薦
- 2022-12-30 react中useState改變值不渲染的解決方式_React
- 2022-07-04 Python自動化辦公之清理重復文件詳解_python
- 2023-01-12 python數據擬合之scipy.optimize.curve_fit解讀_python
- 2022-05-12 python2中input()漏洞
- 2022-06-01 C語言?超詳細介紹與實現線性表中的無頭單向非循環鏈表_C 語言
- 2024-01-29 在springboot多數據源項目中創建多個事務(解決@Transactional影響切換數據源問題
- 2023-05-26 keras.layers.Conv2D()函數參數用法及說明_python
- 2022-06-07 關于python調用c++動態庫dll時的參數傳遞問題_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支