<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python常見報(bào)錯(cuò)及解決方案,建議收藏!

          共 3164字,需瀏覽 7分鐘

           ·

          2022-06-29 12:50

          來源丨網(wǎng)絡(luò)

          大家好,我是菜鳥哥。


          如果說寫代碼最害怕什么,那無疑是Bug。而對(duì)于新手來說,剛剛接觸編程,在享受寫代碼的成就感時(shí),往往也會(huì)被各式各樣的Bug弄得暈頭轉(zhuǎn)向。

          今天,我們就做了一期Python常見報(bào)錯(cuò)的分享,拯救你的代碼!


          01

          縮進(jìn)錯(cuò)誤(IndentationError)

          在Python中,所有代碼都是通過正確的空格排列的。所以,無論是多出來空格,還是缺少空格,整個(gè)代碼都不會(huì)運(yùn)行,并且僅返回一個(gè)錯(cuò)誤函數(shù)。


          Python代碼遵循PEP8空白規(guī)范,每一級(jí)縮進(jìn)使用4個(gè)空格。


          錯(cuò)誤示例

          a=1
          b=2
          if a<b:
          print a


          修正

          a=1
          b=2
          if a<b:
              print a


          02

          Tab 和空格混用(TabError)

          此類報(bào)錯(cuò)是由于同時(shí)使用制表符和空格進(jìn)行編碼導(dǎo)致的,tab鍵本質(zhì)上是制表符,而非縮進(jìn)符。由于不同文本編輯器中制表符代表的空格寬度不一,建議使用空格。


          03

          語法錯(cuò)誤(SyntaxError)

          語法錯(cuò)誤的原因包含下列三種:

          1. 無效語法(invalid syntax)

            標(biāo)點(diǎn)符號(hào)遺漏,中英文符號(hào)混用,拼寫錯(cuò)誤,變量名或者函數(shù)名使用了關(guān)鍵字。

          2. 標(biāo)識(shí)符中有無效字符(invalid character in identifier)

            代碼中出現(xiàn)了無法識(shí)別的字符,檢查一下是否有多余字符或者中文字符。

          3. 檢查到不完整的字符串(EOL while scanning string litera)

              很多情況下是由于字符串兩邊的引號(hào)不統(tǒng)一。


          錯(cuò)誤示例

          print( 'hello', 'world')

          錯(cuò)誤原因:逗號(hào)為中文逗號(hào)

          報(bào)錯(cuò)信息:SyntaxError: invalid character inidentifier


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

          錯(cuò)誤原因:圓括號(hào)沒有成對(duì)出現(xiàn)

          報(bào)錯(cuò)信息:SyntaxError:unexpected EOF whileparsing



          if name =="A"
          print("hello")

          錯(cuò)誤原因:忘記在if/elif/else/while/for/def/class等語句末尾添加冒號(hào)

          報(bào)錯(cuò)信息:SyntaxError:invalid syntax


          03

          變量名錯(cuò)誤(NameErro)

          變量名錯(cuò)誤是最普通也是最常會(huì)遇到的內(nèi)建報(bào)錯(cuò)類型,經(jīng)常會(huì)出現(xiàn)在Python變量命名上,如果找不到變量就會(huì)引發(fā)NameError。關(guān)于變量名的規(guī)則,需要牢記以下幾條:


          • 變量名只能包含字母、數(shù)字和下劃線,不可用數(shù)字開頭;

          • 變量名不能包含空格,但可使用下劃線來分隔其中的單詞;

          • 不要將Python關(guān)鍵字和函數(shù)名用作變量名,如print;

          • 變量名應(yīng)既簡短又具有描述性;

          • 慎用小寫字母l和大寫字母O,因?yàn)槿菀妆诲e(cuò)看成數(shù)字1和0。


          出現(xiàn)變量名錯(cuò)誤,可以查看變量是否賦值,是否存在大小寫不統(tǒng)一或者變量名寫錯(cuò)了的情況,找到后加以修正。


          錯(cuò)誤示例

          message = "Hello!"
          print(mesage)

          錯(cuò)誤原因:變量名拼寫錯(cuò)誤,誤將massage拼寫為masge
          報(bào)錯(cuò)信息:NameError: name 'mesage' is not defined

          05

          索引錯(cuò)誤(IndexError)

          索引是項(xiàng)目在數(shù)組或列表中的位置,當(dāng)我們嘗試從列表中訪問元素或從列表中不存在的索引中訪問元組時(shí),就會(huì)發(fā)生這種異常。


          例如,有一個(gè)包含10個(gè)元素的列表,索引在0到9之間,如果試圖訪問索引10或11或更多的元素,就會(huì)產(chǎn)生IndexError。


          錯(cuò)誤示例

          a = [1,2,3]
          print(a[3])
          錯(cuò)誤原因:列表a中不存在第4個(gè)索引,列表的索引從0開始編號(hào)
          報(bào)錯(cuò)信息:IndexError: string index out of range

          06

          鍵錯(cuò)誤(KeyError)

          在讀取字典中的key和value時(shí),如 果key不存在,就會(huì)觸發(fā)KeyError錯(cuò)誤。


          錯(cuò)誤示例

          d = {'a':1,'b':2}
          print(d['f'])
          錯(cuò)誤原因:鍵‘f’不存在
          報(bào)錯(cuò)信息:KeyError: 'f'


          07

          類型錯(cuò)誤(TypeError)

          在程序中使用不正確或不受支持的對(duì)象類型時(shí),會(huì)引發(fā)該錯(cuò)誤。如果嘗試調(diào)用不可調(diào)用的對(duì)象或通過非迭代標(biāo)識(shí)符進(jìn)行迭代,也會(huì)引發(fā)此錯(cuò)誤。


          錯(cuò)誤示例

          age=18
          print("我的年齡是"+age)
          錯(cuò)誤原因:在使用“+”做拼接的時(shí)候,必須使用字符串,或者 把數(shù)字用str()函數(shù)轉(zhuǎn)化成字符串
          報(bào)錯(cuò)信息:TypeError:can only concatenate str(not"int")to str


          08

          屬性錯(cuò)誤(AttributeError)

          特性引用和賦值失敗時(shí)會(huì)引發(fā)屬性錯(cuò)誤。

          此類錯(cuò)誤的原因是嘗試訪問未知的對(duì)象屬性,換句話說就是找不到對(duì)應(yīng)對(duì)象的屬性。可以檢查類中構(gòu)造函數(shù)__init__()是否寫正確,左右兩邊各兩條下劃線。



          對(duì)于初學(xué)的小伙伴來說,代碼經(jīng)常出現(xiàn)Bug并不代表著你學(xué)得不好。若是將一個(gè)個(gè)Bug看作游戲里小怪,那么消滅Bug的過程又何嘗不是升級(jí)的過程呢?


          所以,努力加油吧!消滅Bug!


          萬水千山總是情,點(diǎn)個(gè) ?? 行不行





          推薦閱讀:

          入門: 最全的零基礎(chǔ)學(xué)Python的問題  | 零基礎(chǔ)學(xué)了8個(gè)月的Python  | 實(shí)戰(zhàn)項(xiàng)目 |學(xué)Python就是這條捷徑


          干貨:爬取豆瓣短評(píng),電影《后來的我們》 | 38年NBA最佳球員分析 |   從萬眾期待到口碑撲街!唐探3令人失望  | 笑看新倚天屠龍記 | 燈謎答題王 |用Python做個(gè)海量小姐姐素描圖 |碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影


          趣味:彈球游戲  | 九宮格  | 漂亮的花 | 兩百行Python《天天酷跑》游戲!


          AI: 會(huì)做詩的機(jī)器人 | 給圖片上色 | 預(yù)測收入 | 碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影


          小工具: Pdf轉(zhuǎn)Word,輕松搞定表格和水印! | 一鍵把html網(wǎng)頁保存為pdf!|  再見PDF提取收費(fèi)! | 用90行代碼打造最強(qiáng)PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換 | 制作一款釘釘?shù)蛢r(jià)機(jī)票提示器! |60行代碼做了一個(gè)語音壁紙切換器天天看小姐姐!




          年度爆款文案

          點(diǎn)閱讀原文,看B站我的20個(gè)視頻!

          瀏覽 37
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产一区视频在线播放 | 天堂中文资源库 | 欧美亚洲色综久久精品国产 | 伊人久久大综合中文无码 | 国产精品老熟女视频一区二区 |