成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python3十大經典錯誤及解決辦法

開發 后端
接觸了很多Python愛好者,有初學者,亦有轉行人。不論大家學習Python的目的是什么,總之,學習Python前期寫出來的代碼不報錯就是極好的。下面,嚴小樣兒為大家羅列出Python3十大經典錯誤及解決辦法,供大家學習。

 接觸了很多Python愛好者,有初學者,亦有轉行人。不論大家學習Python的目的是什么,總之,學習Python前期寫出來的代碼不報錯就是極好的。下面,嚴小樣兒為大家羅列出Python3十大經典錯誤及解決辦法,供大家學習。

[[328533]]

一、 SyntaxError 語法錯誤

(1)引號沒有成對出現

報錯信息:

  1. SyntaxError:EOL while scanning string literal 

錯誤示例:

  1. string = 'hello world 

解決方法:

字符串切記要放在引號中,單引號雙引號無所謂。當一個字符串中包含單引號或雙引號時,很容易出現引號不配對的情況。

(2)圓括號沒有成對出現

報錯信息:

  1. SyntaxError:unexpected EOF while parsing 

錯誤示例1:

  1. result = (1024+(512*2)/128 

錯誤示例2:

  1. print('hello world' 

解決方法:

使圓括號成對出現。在書寫復雜的表達式或調用函數時會經常遇到這個問題。

(3)錯誤使用自操作運算符++或--等

報錯信息:

  1. SyntaxError:invalid syntax 

錯誤示例:

  1. v = 64 
  2. v++ 

解決方法:

在Python語言中,沒有類似C語言的++或--等自操作運算符。與之類似功能的用法是+=或-=運算符。例如,使用下面的代碼進行讓變量v進行自增1的操作。

  1. v += 1 

(4)試圖使用等號(=)判斷兩個運算量是否相等

報錯信息:

  1. SyntaxError:invalid syntax 

錯誤示例:

  1. if v=64:2 
  2. print('hello world'

解決方法:

在Python語言中使用兩個等號(==)作為判斷兩個運算量是否相等的關系運算符,而等號(=)是賦值運算符。

(5)錯誤使用Python語言關鍵字作為變量名

報錯信息:

  1. SyntaxError: can`t assign to keyword 

錯誤示例:

  1. False= 1 

解決方法:

不要使用Python語言關鍵字作為變量名、函數名或類名等。在Python Shell窗口中,使用help('keywords')指令可以查看Python語言的關鍵字列表。

(6)忘記在if/elif/else/while/for/def/class等語句末尾添加冒號(:)

報錯信息:

  1. SyntaxError:invalid syntax 

錯誤示例1:

  1. a = '12345' 
  2. for i  in a 
  3.     print(i) 

錯誤示例2:

  1. def sayhi() 
  2.     print('Hi'

解決方法:

在if/elif/else/while/for/def/class等語句末尾添加冒號(:)即可。牢記語法規則,多多練習多多敲代碼。

(7)錯誤地使用了中文標點符號

報錯信息:

  1. SyntaxError: invalid character in identifier 

錯誤示例1:

  1. print('hello''world'
  2. # 錯誤原因:逗號是中文標點符號 

錯誤示例2:

  1. for i in range(10): 
  2. # 錯誤原因:冒號是中文標點符號 

解決方法:

除了字符串中可以有中文外,其它任何情況均使用英文狀態進行編輯。

二、 IndentationError 縮進錯誤報錯信息:

  1. IndentationError:unindent does not match any outer indentation level 
  2. IndentationError:expected an indented block 

錯誤示例:

  1. a = 2 
  2. while a < 0: 
  3.       print('hello'
  4.     a -= 1 
  5. else: 
  6.     print('0.0'

解決方法:

上述代碼中while語句體內的代碼縮進沒有對齊。正確使用縮進排版代碼。當代碼是從其它地方復制并粘貼過來的時候,這個錯誤較多見。

三、 NameError 名字錯誤

當變量名、函數名或類名等書寫錯誤,或者函數在定義之前就被調用等情況下,就會導致名字錯誤。報錯信息:

  1. NameError: name 'pirnt' is not defined 
  2. NameError: name 'sayhi' is not defined 
  3. NameError: name 'pd' is not defined 

錯誤示例1:

  1. pirnt('hello world'
  2. # 錯誤原因:print拼寫錯誤。 

錯誤示例2:

  1. sayhi() 
  2.  
  3. def sayhi(): 
  4.     pass 
  5. # 錯誤原因:在函數定義之前對函數進行調用。 

錯誤示例3:

  1. pd.read_excel(r'file.xlsx'
  2. # 錯誤原因:在調用pandas方法前并未導入pandas庫或者并未起別名為pd。 

解決方法:

正確書寫變量名、函數名或類名等,在使用變量前先進行賦值,將函數的定義放在函數調用之前,在使用第三方庫前先進行導入、調包等等。即保證某個名字(標識符)先存在,才能被使用。

四、 TypeError 類型錯誤

(1)整數和字符串不能進行連接操作

報錯信息:

  1. TypeError: Can`t convert 'int' object to str implicitly 
  2. TypeError: unsupported operand type(s) for + : 'float' and 'str' 

錯誤示例1:

  1. print('score:'+100) 

錯誤示例2:

  1. print(9.8 + 'seconds'

解決方法:

在整數、浮點數或布爾值與字符串進行連接操作之前,先使用str()函數將其轉換為字符串類型。

(2)調用函數時參數的個數不正確,或者未傳遞參數

報錯信息:

  1. TypeError: input expected at most 1 arguments,got 2 
  2. TypeError: say() missing 1 required positional argument:'words' 

錯誤示例1:

  1. input('輸入姓名','年齡'
  2. # 錯誤原因:試圖給input()函數提供第2個參數。 

錯誤示例2:

  1. def say(words): 
  2.     print(words) 
  3.  
  4. say() 
  5. # 錯誤原因:調用函數時未傳遞參數。 

解決方法:

記住函數用法,了解函數的參數定義,使用正確的方法調用函數即可。

五、 KeyError 鍵錯誤

使用不存在的鍵名訪問字典中的元素,就會發生這個錯誤。報錯信息:

  1. KeyError: 'c' 

錯誤示例:

  1. d = {'a':1,'b':2} 
  2. print(d['c']) 

解決方法:

在訪問字典中的元素時,先用in關鍵字檢測要訪問的鍵名是否存在,或者是使用字典和get()方法安全地訪問字典元素。

六、 IndexError 索引錯誤

當訪問列表的索引超出列表范圍時,就會出現索引錯誤。報錯信息:

  1. IndexError: list index out of range 

錯誤示例:

  1. a = [1,2,3] 
  2. print(a[3]) 
  3. # 錯誤原因:列表a中不存在第4個索引。列表的索引從0開始編號。 

解決方法:

通過len()函數獲取列表的長度,然后判斷要訪問的索引是否超出列表范圍。

七、 UNboundLocalError 未初始化本地變量錯誤

在函數中,如果對未聲明的全局變量進行修改操作,將會遇到這個錯誤。報錯信息:

  1. UnboundLocalError: local variable 's' referenced before assignment 

錯誤示例:

  1. s = 1 
  2.  
  3. def test(): 
  4.     s += 1 
  5.     print(s) 
  6.  
  7. test() 
  8. # 錯誤原因:在函數內對未聲明的全局變量s進行了自增操作。 
  9. # Python將變量s視為一個本地的局部變量,但該變量未初始化。 

解決方法:

在函數內使用全局變量時,使用global關鍵字對其進行聲明即可。

八、 AttributeError 屬性錯誤

報錯信息:

  1. AttributeError: 'tuple' object has no attribute 'append' 
  2. AttributeError: 'DataFrame' object has no attribute 'col' 

錯誤示例1:

  1. t = (1,2,3) 
  2. t.append(4) 
  3. # 錯誤原因:元祖不可變。 

錯誤示例2:

  1. df = pd.read_excel(r'data.xlsx'
  2. df.col 
  3. # 錯誤原因:DataFrame沒有col屬性,應該為columns。 

解決方法:

正確書寫類的屬性名,不要發生書寫錯誤。深刻理解元祖,列表的區別,可將元祖轉換為列表添加元素。

九、 ModuleNotFoundError 模塊不存在

報錯信息:

  1. ModuleNotFoundError: No module named 'pandas' 

錯誤示例1:

  1. import pandas as pd 
  2. # 沒有導入成功,報上面錯誤。 

解決方法:

這種報錯常見于兩種場景中,第一、未下載、安裝該模塊;第二、將調用的模塊路徑與被調用的模塊路徑不一致等。第一種情況直接下載安裝即可,在cmd中,pip install xxx;第二種情況電腦中可能存在多個版本的Python,建議保留一個常用的即可。

十、 FileNotFoundError 文件不存在

報錯信息:

  1. FileNotFoundError: File b'E:\test\test_data.csv' does not exist 

錯誤示例:

  1. pd.read_csv('E:\test\test_data.csv'
  2. # 錯誤原因:路徑中包含'\t',系統錯誤地認為是制表符。 

解決方法:

在確保該路徑下確實存在所寫文件后,在讀取文件路徑前面加'r',表示只讀,作為文件路徑讀取;或者使用雙斜杠'\ \'來進行轉義,形如:'E:\ \test\ \test_data.csv'。偶爾也會發生文件名、路徑的確寫錯,犯一些低級錯誤。

結束語

報錯,并不可怕,那是一個學習的機會。現在搜索引擎這么發達,只要把錯誤信息放進去,一搜就出來了各種解決之道。

當然了,大家還可以找嚴小樣兒啊!嚴小樣兒特別樂意幫別人的代碼找錯,排錯,然后再告訴你正確之道——點“在看”,右下角↘‘在看’點一下。

 

責任編輯:華軒 來源: 統計與數據分析實戰
相關推薦

2010-08-31 14:01:48

CSS

2022-03-10 12:03:33

Python算法代碼

2024-09-06 17:57:35

2016-01-29 11:00:55

數據挖掘算法大數據

2021-10-31 07:38:37

排序算法代碼

2017-07-18 10:50:38

前端JavaScript排序算法

2013-02-25 09:46:35

數據挖掘算法ICDM

2013-07-09 13:56:48

微信

2017-07-27 14:21:44

2011-01-26 09:14:43

數據挖掘

2018-11-14 09:40:05

排序算法Java編程語言

2019-08-28 11:08:51

排序算法Java

2017-05-19 08:32:10

Web設計SQL Server集群

2011-11-28 14:23:53

美信云網管

2021-11-08 15:12:48

排序算法面試

2015-11-11 08:36:40

數據中心網絡運維

2018-10-27 15:47:35

CART算法決策樹

2021-01-26 05:33:07

排序算法快速

2018-02-01 18:45:12

機器學習算法線性回歸

2020-06-05 16:05:58

人工智能機器學習人臉識別
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美一级片 | 欧美 日韩 国产 成人 在线 | 亚洲欧美中文日韩在线v日本 | 激情欧美一区二区三区中文字幕 | 欧美日韩国产一区二区三区不卡 | 欧美激情在线观看一区二区三区 | 91精品国产高清一区二区三区 | 日韩在线观看网站 | 一本久久a久久精品亚洲 | 色婷婷综合成人av | 亚卅毛片 | 毛片一级片| 国产欧美日韩一区 | 欧美精品久久久久 | 亚洲精品日韩一区二区电影 | 国内av在线 | 日本一区高清 | 91大神在线看 | 成人精品一区二区三区四区 | 成人免费视频网站在线观看 | 国产高清视频一区二区 | 五月香婷婷 | 麻豆成人在线视频 | 欧美视频在线播放 | 最新国产精品 | 中文字幕一区二区三区四区不卡 | 久草欧美 | 国产福利91精品一区二区三区 | 天天综合91| 午夜精品久久久 | 久久久久精| 中文字幕精品一区二区三区精品 | 亚洲精品久久久久久一区二区 | 成人av电影天堂 | 天天天天天天操 | 日本成人中文字幕 | 国产免费xxx | 高清国产午夜精品久久久久久 | 亚洲高清免费观看 | 欧美三区在线观看 | 麻豆av网站 |