最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中常見錯(cuò)誤及解決方法

 更新時(shí)間:2020年06月21日 07:05:58   作者:silencement  
在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于python中常見錯(cuò)誤及解決方法的知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考下。

python常見的錯(cuò)誤有

1.NameError變量名錯(cuò)誤

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

3.AttributeError對(duì)象屬性錯(cuò)誤

詳細(xì)講解

1.NameError變量名錯(cuò)誤

報(bào)錯(cuò):

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

解決方案:

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

注:在Python中,無需顯示變量聲明語句,變量在第一次被賦值時(shí)自動(dòng)聲明。

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

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

代碼

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

報(bào)錯(cuò):

IndentationError: expected an indented block<br>

原因:

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

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

解決方案

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

3.AttributeError對(duì)象屬性錯(cuò)誤

報(bào)錯(cuò):

>>> 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對(duì)大小寫敏感,Path和path代表不同的變量。將Path改為path即可。

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

初學(xué)者遇到的錯(cuò)誤實(shí)例:

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

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

print('Hello!')
print('Howdy!')

導(dǎo)致:IndentationError: unexpected indent。同一個(gè)代碼塊中的每行代碼都必須保持一致的縮進(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 方法

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

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 = 42
def myFunction():
print(someVar)
someVar = 100
myFunction()

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

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

以上就是python中常見錯(cuò)誤及解決方法的詳細(xì)內(nèi)容,更多關(guān)于python常見錯(cuò)誤有哪些的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

宁阳县| 松溪县| 郧西县| 沙洋县| 百色市| 剑河县| 米林县| 自贡市| 新民市| 渭南市| 安义县| 吴忠市| 墨江| 衡阳县| 资源县| 娄烦县| 岗巴县| 荔浦县| 当阳市| 张家界市| 太仆寺旗| 十堰市| 黄梅县| 治县。| 东兰县| 福泉市| 邻水| 吴桥县| 姜堰市| 龙海市| 沾化县| 长丰县| 探索| 海原县| 吉隆县| 龙陵县| 杭州市| 资中县| 霍林郭勒市| 新泰市| 渑池县|