av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

python中常見錯誤及解決方法

瀏覽:34日期:2022-07-20 09:47:44

python常見的錯誤有

1.NameError變量名錯誤

2.IndentationError代碼縮進(jìn)錯誤

3.AttributeError對象屬性錯誤

詳細(xì)講解

1.NameError變量名錯誤

報錯:

>>> print a<br>Traceback (most recent call last):<br>File '<stdin>', line 1, in <module><br>NameError: name ’a’ is not defined<br>

解決方案:

先要給a賦值。才能使用它。在實際編寫代碼過程中,報NameError錯誤時,查看該變量是否賦值,或者是否有大小寫不一致錯誤,或者說不小心將變量名寫錯了。

注:在Python中,無需顯示變量聲明語句,變量在第一次被賦值時自動聲明。

>>> a=1<br>>>> print a<br>1<br>

2.IndentationError代碼縮進(jìn)錯誤

代碼

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

報錯:

IndentationError: expected an indented block<br>

原因:

縮進(jìn)有誤,python的縮進(jìn)非常嚴(yán)格,行首多個空格,少個空格都會報錯。這是新手常犯的一個錯誤,由于不熟悉python編碼規(guī)則。像def,class,if,for,while等代碼塊都需要縮進(jìn)。

縮進(jìn)為四個空格寬度,需要說明一點,不同的文本編輯器中制表符(tab鍵)代表的空格寬度不一,如果代碼需要跨平臺或跨編輯器讀寫,建議不要使用制表符。

解決方案

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

3.AttributeError對象屬性錯誤

報錯:

>>> import sys<br>>>> sys.Path<br>Traceback (most recent call last):<br>File '<stdin>', line 1, in <module><br>AttributeError: ’module’ object has no attribute ’Path’<br>

原因:

sys模塊沒有Path屬性。

python對大小寫敏感,Path和path代表不同的變量。將Path改為path即可。

>>> sys.path<br>[’’, ’/usr/lib/python2.6/site-packages’]<br>

初學(xué)者遇到的錯誤實例:

使用錯誤的縮進(jìn)

Python用縮進(jìn)區(qū)分代碼塊,常見的錯誤用法:

print(’Hello!’)print(’Howdy!’)

導(dǎo)致:IndentationError: unexpected indent。同一個代碼塊中的每行代碼都必須保持一致的縮進(jìn)量

if spam == 42:print(’Hello!’)print(’Howdy!’)

導(dǎo)致:IndentationError: unindent does not match any outer indentation level。代碼塊結(jié)束之后縮進(jìn)恢復(fù)到原來的位置

if spam == 42:print(’Hello!’)

導(dǎo)致:IndentationError: expected an indented block,“:” 后面要使用縮進(jìn)

變量沒有定義

if spam == 42:print(’Hello!’)

導(dǎo)致:NameError: name ’spam’ is not defined

獲取列表元素索引位置忘記調(diào)用 len 方法

通過索引位置獲取元素的時候,忘記使用 len 函數(shù)獲取列表的長度。

spam = [’cat’, ’dog’, ’mouse’]for i in range(spam):print(spam[i])

導(dǎo)致:TypeError: range() integer end argument expected, got list. 正確的做法是:

spam = [’cat’, ’dog’, ’mouse’]for i in range(len(spam)):print(spam[i])

當(dāng)然,更 Pythonic 的寫法是用 enumerate

spam = [’cat’, ’dog’, ’mouse’]for i, item in enumerate(spam):print(i, item)

函數(shù)中局部變量賦值前被使用

someVar = 42def myFunction():print(someVar)someVar = 100myFunction()

導(dǎo)致:UnboundLocalError: local variable ’someVar’ referenced before assignment

當(dāng)函數(shù)中有一個與全局作用域中同名的變量時,它會按照 LEGB 的順序查找該變量,如果在函數(shù)內(nèi)部的局部作用域中也定義了一個同名的變量,那么就不再到外部作用域查找了。因此,在 myFunction 函數(shù)中 someVar 被定義了,所以 print(someVar) 就不再外面查找了,但是 print 的時候該變量還沒賦值,所以出現(xiàn)了 UnboundLocalError

以上就是python中常見錯誤及解決方法的詳細(xì)內(nèi)容,更多關(guān)于python常見錯誤有哪些的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 一级久久久久久 | 精品九九九 | 一区二区三区日 | 国产片一区二区三区 | 成人免费视频网址 | 在线区| 中文字幕 欧美 日韩 | 亚洲精品一区二区网址 | 成人在线影视 | 伦理午夜电影免费观看 | 日本午夜免费福利视频 | 婷婷中文在线 | 成人午夜精品 | 色婷婷一区二区三区四区 | 久久久区 | 成年人国产在线观看 | 国产精品日韩欧美一区二区 | 日韩精品一区二区三区视频播放 | 日本精品一区二区三区在线观看视频 | 国产精品成人品 | 91在线精品播放 | 久久大香 | 成人亚洲视频 | 激情91| 日韩精品在线免费观看视频 | 欧美一区二区三区在线观看视频 | 亚洲视频免费在线观看 | 夜夜爽99久久国产综合精品女不卡 | 玖玖国产 | 久久精品视频一区二区 | 欧美精品久久一区 | 国产超碰人人爽人人做人人爱 | 国产精品久久久久久影院8一贰佰 | 久久不卡| 久久99视频这里只有精品 | 亚洲一区二区在线视频 | 国产精品1区 | 在线看日韩 | 毛片在线视频 | 日韩欧美三区 | 久久毛片 |