1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Python常見報錯及解決方案,建議收藏!

        共 2298字,需瀏覽 5分鐘

         ·

        2022-07-06 08:53

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

        ↑ 關(guān)注 + 星標(biāo) ,每天學(xué)Python新技能

        后臺回復(fù)【大禮包】送你Python自學(xué)大禮包



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


        今天,我們就做了一期Python常見報錯的分享,拯救你的代碼!


        01

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

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


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


        錯誤示例

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


        修正

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


        02

        Tab 和空格混用(TabError)

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


        03

        語法錯誤(SyntaxError)

        語法錯誤的原因包含下列三種:

        1. 無效語法(invalid syntax)

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

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

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

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

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


        錯誤示例

        print( 'hello', 'world')

        錯誤原因:逗號為中文逗號

        報錯信息:SyntaxError: invalid character inidentifier


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

        錯誤原因:圓括號沒有成對出現(xiàn)

        報錯信息:SyntaxError:unexpected EOF whileparsing



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

        錯誤原因:忘記在if/elif/else/while/for/def/class等語句末尾添加冒號

        報錯信息:SyntaxError:invalid syntax


        03

        變量名錯誤(NameErro)

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


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

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

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

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

        • 慎用小寫字母l和大寫字母O,因為容易被錯看成數(shù)字1和0。


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


        錯誤示例

        message = "Hello!"
        print(mesage)

        錯誤原因:變量名拼寫錯誤,誤將massage拼寫為masge
        報錯信息:NameError: name 'mesage' is not defined

        05

        索引錯誤(IndexError)

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


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


        錯誤示例

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

        06

        鍵錯誤(KeyError)

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


        錯誤示例

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


        07

        類型錯誤(TypeError)

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


        錯誤示例

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


        08

        屬性錯誤(AttributeError)

        特性引用和賦值失敗時會引發(fā)屬性錯誤。

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



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


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


        萬水千山總是情,點個 ?? 行不行。




        1. 當(dāng)Pandas撞上了SQL,于是一個強(qiáng)大的pandasql庫產(chǎn)生了!

        2. 臥槽,這才是最強(qiáng)Python刷題網(wǎng)站!


        瀏覽 48
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            女人扒开尿口让男人捅 | 毛片aaaaaa| 久久不卡视频 | 巨乳影音先锋 | 成人无码区免费视频网站入口 | 美女的逼网站 | 乱伦AV中文字幕 | 毛片专区| 高潮喷水网站 | 婷婷国产一区二区三区免费国产 |