欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Python花式錯(cuò)誤集錦(長(zhǎng)期更新)-創(chuàng)新互聯(lián)

Python是一門(mén)靈活的,有意思的,用途廣泛的語(yǔ)言。近些年來(lái),受到越來(lái)越多的重視。也有越來(lái)越多的人來(lái)學(xué)習(xí)這門(mén)語(yǔ)言。

網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設(shè)置、關(guān)鍵詞群組等細(xì)微處著手,突出企業(yè)的產(chǎn)品/服務(wù)/品牌,幫助企業(yè)鎖定精準(zhǔn)用戶(hù),提高在線咨詢(xún)和轉(zhuǎn)化,使成都網(wǎng)站營(yíng)銷(xiāo)成為有效果、有回報(bào)的無(wú)錫營(yíng)銷(xiāo)推廣。創(chuàng)新互聯(lián)專(zhuān)業(yè)成都網(wǎng)站建設(shè)10多年了,客戶(hù)滿(mǎn)意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶(hù)聯(lián)系。

于是,問(wèn)題來(lái)了,對(duì)于初學(xué)者,往往在寫(xiě)代碼的過(guò)程中,出現(xiàn)這樣或那樣的錯(cuò)誤,導(dǎo)致程序運(yùn)行報(bào)錯(cuò)。這些錯(cuò)誤或簡(jiǎn)單,或復(fù)雜,或詭異,或神奇,要么令人抓耳撓腮,要么讓人惱羞成怒,要么讓人難以忘懷。但是,在學(xué)習(xí)編程的過(guò)程中,就是這些錯(cuò)誤讓我們成長(zhǎng),讓我們逐漸從采坑再爬坑的過(guò)程中,感受到編程的魅力。

到底有哪些錯(cuò)誤呢,請(qǐng)看DE8UG給你帶來(lái)的"Python花式錯(cuò)誤集錦",如果你遇到了Python開(kāi)發(fā)中的錯(cuò)誤,從本文搜索關(guān)鍵詞并得到解決,那是我的榮幸。

語(yǔ)法錯(cuò)誤篇

縮進(jìn)IndentationError

這是在復(fù)制粘貼代碼,或者不熟悉Python代碼結(jié)構(gòu)時(shí)候,經(jīng)常范的錯(cuò)誤。Python中要求同一邏輯的代碼塊使用同樣的縮進(jìn)(常用4個(gè)空格)。

看這段:

def test():
    a = 1
    b = 2
   return a + b

運(yùn)行后,立馬報(bào)錯(cuò)

  File "<ipython-input-1-515579e6247e>", line 4
    return a + b
                ^
IndentationError: unindent does not match any outer indentation level

解決方法,很簡(jiǎn)單,把縮進(jìn)調(diào)整為統(tǒng)一的4個(gè)空格就好。

標(biāo)點(diǎn)符號(hào)SyntaxError

這里情況就比較多了,常見(jiàn)的為

  • 冒號(hào)錯(cuò)誤
  • 逗號(hào)錯(cuò)誤
  • 小括號(hào)缺失或不匹配

來(lái)看看具體錯(cuò)誤樣式

def test():
    pass

  File "<ipython-input-2-b5cadef232ad>", line 1
    def test():
              ^
SyntaxError: invalid character in identifier

print(1,2,3,4,5,6)
  File "<ipython-input-3-be45856da7c7>", line 1
    print(1,2,3,4,5,6)
                ^
SyntaxError: invalid character in identifier

def test_a(a):
    return a * 2

def test_b(b):
    return b + 3

def test_c(c):
    return c - 4

x = 5
test_c(test_b(test_a))

TypeError                                 Traceback (most recent call last)
<ipython-input-4-af8d9c054419> in <module>()
      9 
     10 x = 5
---> 11 test_c(test_b(test_a))

<ipython-input-4-af8d9c054419> in test_b(b)
      3 
      4 def test_b(b):
----> 5     return b + 3
      6 
      7 def test_c(c):

TypeError: unsupported operand type(s) for +: 'function' and 'int'

# 還可能這樣
test_c(test_b(test_a())

  File "<ipython-input-5-eab78f53d59a>", line 11
    test_c(test_b(test_a())
                           ^
SyntaxError: unexpected EOF while parsing

修改方式很簡(jiǎn)單,代碼里的標(biāo)點(diǎn)符號(hào)都是英文,出現(xiàn)語(yǔ)法錯(cuò)誤好好檢查看看標(biāo)點(diǎn)符號(hào)的寬度,我的簡(jiǎn)單記法是中文的都比較胖,英文的都是瘦子。另外,對(duì)于括號(hào)的問(wèn)題,首先是要英文,其次呢寫(xiě)的時(shí)候,養(yǎng)成一種上來(lái)先把成對(duì)()寫(xiě)好的習(xí)慣,然后再填內(nèi)容。

變量應(yīng)用篇

命名錯(cuò)誤

最需要禁止的是使用Python自帶的關(guān)鍵詞來(lái)命名,比如list,dict等,會(huì)導(dǎo)致類(lèi)型錯(cuò)誤。

a = (2,5,8)
a_list = list(a)  # 第一次可以用list轉(zhuǎn)換
list = list(a)  # 如果把list當(dāng)作變量名,會(huì)引起后續(xù)代碼再用list轉(zhuǎn)換時(shí)候報(bào)錯(cuò)
b = (3,5,7)
b_list = list(b)
TypeError                                 Traceback (most recent call last)
<ipython-input-12-70adb4cffa4f> in <module>()
      1 b = (3,5,7)
----> 2 b_list = list(b)

TypeError: 'list' object is not callable
2b = c
  File "<ipython-input-7-9b1de15aaa88>", line 1
    2b = c
     ^
SyntaxError: invalid syntax

a-2 = 1
  File "<ipython-input-8-ac5315177c02>", line 1
    a-2 = 1
           ^
SyntaxError: can't assign to operator

命名時(shí)候,建議使用下劃線_連字符,或者theName,或者TheName這種首字母大寫(xiě)的駝峰法。
而且,不建議使用0(數(shù)字零)或者l(小寫(xiě)的L)來(lái)命名,否則容易引起下面的使用錯(cuò)誤。

使用錯(cuò)誤

這里最常見(jiàn)的是使用容易混淆的字母來(lái)命名,造成似乎用時(shí)候出錯(cuò),或者是使用時(shí)候完全用錯(cuò)了變量。

name_l = 'de8ug'
print(name_1)
NameError                                 Traceback (most recent call last)
<ipython-input-13-cfee4c383b1a> in <module>()
      1 name_l = 'de8ug'
----> 2 print(name_1)

NameError: name 'name_1' is not defined

name_0 = 'de8ug'
print(name_o)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-14-7b351863596a> in <module>()
      1 name_0 = 'de8ug'
----> 2 print(name_o)

name = 'de8ug'
print(f'name')
print(f'{de8ug}')
print(f'{name}')
NameError                                 Traceback (most recent call last)
<ipython-input-17-22b546a709ce> in <module>()
      1 name = 'de8ug'
      2 print(f'name')
----> 3 print(f'{de8ug}')
      4 print(f'{name}')

NameError: name 'de8ug' is not defined

編碼錯(cuò)誤篇

Python3中,最常見(jiàn)的編碼錯(cuò)誤是在網(wǎng)絡(luò)應(yīng)用中,有時(shí)候得到的數(shù)據(jù)是bytes,但是我們實(shí)際需要str,這時(shí)候就需要轉(zhuǎn)換編碼。

這里需要注意bytes和str的轉(zhuǎn)換,其中 encoding='utf-8'是默認(rèn)的參數(shù)

name = "de8ug"
print(type(name))  # str
print(type(name.encode()))  # bytes, S.encode(encoding='utf-8', errors='strict') -> bytes

name = b"de8ug"
print(type(name))  # bytes
print(type(name.decode()))  # str, decode(encoding='utf-8', errors='strict') --> str

導(dǎo)入模塊篇

  • 沒(méi)有提前導(dǎo)入

這種情況經(jīng)常發(fā)生在使用某些模塊的功能,但是py文件頭部忘記導(dǎo)入

json.loads('{"name":"de8ug", "city":"beijing"}')

NameError                                 Traceback (most recent call last)
<ipython-input-41-fd9b6a45da38> in <module>()
----> 1 json.loads('{"name":"de8ug", "city":"beijing"}')

NameError: name 'json' is not defined

這種情況經(jīng)常出現(xiàn)在學(xué)習(xí)某些新內(nèi)容,學(xué)習(xí)(chao)完代碼開(kāi)始運(yùn)行時(shí)候,發(fā)現(xiàn)啥啥啥沒(méi)defined,這時(shí)候就需要去檢查是不是最開(kāi)始沒(méi)有import的問(wèn)題了。

當(dāng)加入 import json后,可得到正確結(jié)果{'name': 'de8ug', 'city': 'beijing'}

  • 運(yùn)行py文件時(shí)候報(bào)錯(cuò)ModuleNotFoundError: No module named 'xxx'

這種情況一般是,運(yùn)行的那個(gè)py文件又需要導(dǎo)入自己定義的其他模塊,
但此時(shí)系統(tǒng)不知道哪些模塊的存在,解決辦法是在運(yùn)行的第一個(gè)py文件頭部,添加如下代碼:
這種情況適用于有個(gè)project項(xiàng)目,里面又bin,conf,app等目錄,當(dāng)bin里面的py文件又需要引入conf,app等目錄的模塊時(shí)候,需要讓系統(tǒng)本身知道project這目錄的存在,先有爺爺,然后才能有孫子啊。

import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)

函數(shù)使用篇

  • 作用域問(wèn)題

Python在函數(shù)中使用變量的時(shí)候,會(huì)按照LEGB(Local(本地),Enclosing(封閉),Global(全局),Built-in(內(nèi)置))這種作用域的順序來(lái)查找變量。如果有賦值(給同名的變量)操作,需要確保當(dāng)前作用域下已經(jīng)有這個(gè)變量。因?yàn)檫@時(shí)候Python認(rèn)為函數(shù)內(nèi)部和外部有同名的變量,會(huì)把外部的屏蔽。

name = 'de8ug'
def say_name():
    print(f'name is: {name}')

say_name()  # 這時(shí)候正常, name is: de8ug

name = 'de8ug'
def say_name():
    name = name.capitalize()  # 把名字大寫(xiě),并賦值給name
    print(f'name is: {name}')

say_name()

---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-37-05a0d34cba37> in <module>()
      4     print(f'name is: {name}')
      5 
----> 6 say_name()

<ipython-input-37-05a0d34cba37> in say_name()
      1 name = 'de8ug'
      2 def say_name():
----> 3     name = name.capitalize()  # 把名字大寫(xiě),并賦值給name
      4     print(f'name is: {name}')
      5 

UnboundLocalError: local variable 'name' referenced before assignment
這時(shí)候提示錯(cuò)誤,name作為局部變量,在賦值前被引用了。因?yàn)楹屯獠孔兞客?,此時(shí)name.capitalize()引用name的時(shí)候,在函數(shù)內(nèi)部還沒(méi)有name這個(gè)變量的具體內(nèi)容,所以報(bào)錯(cuò)。

修改方式:
直接引用外部變量,使用相應(yīng)的方法,或者采用不同的變量名

print(f'name is: {name.capitalize() }') #  直接打印
或
cap_name = name.capitalize()

類(lèi)似的還有+=的時(shí)候,這時(shí)候相當(dāng)于兩部操作,先=+,但,如果函數(shù)內(nèi)部變量和函數(shù)外相同,就會(huì)出現(xiàn)類(lèi)似上面的錯(cuò)誤。你感受一下:

n = 10
def add():
    n += 8
    print(n)

add()
---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-46-8215b717b8ed> in <module>()
      4     print(n)
      5 
----> 6 add()

<ipython-input-46-8215b717b8ed> in add()
      1 n = 10
      2 def add():
----> 3     n += 8
      4     print(n)
      5 

UnboundLocalError: local variable 'n' referenced before assignment

小結(jié)

ok,最后我們總結(jié)一下,常見(jiàn)的錯(cuò)誤有這么幾種,

  • 語(yǔ)法錯(cuò)誤
  • 變量應(yīng)用
  • 編碼錯(cuò)誤
  • 導(dǎo)入模塊
  • 函數(shù)作用域

你都犯過(guò)了嗎?

聊到最后,有沒(méi)有解決你學(xué)習(xí)Python的過(guò)程里出現(xiàn)的一些錯(cuò)誤呢?或者,你有沒(méi)有遇到過(guò)什么有意思的錯(cuò)誤呢?歡迎留言討論,一起聊聊。

(首發(fā)于公眾號(hào)<第8哥小灶時(shí)間>,轉(zhuǎn)載請(qǐng)注明出處)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)頁(yè)名稱(chēng):Python花式錯(cuò)誤集錦(長(zhǎng)期更新)-創(chuàng)新互聯(lián)
文章地址:http://aaarwkj.com/article40/ieoho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、標(biāo)簽優(yōu)化、網(wǎng)站導(dǎo)航微信小程序、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
亚洲熟妇av一区二区三区| 色哟哟精品丝袜一区二区| 把熟睡的少妇弄到高潮| 欧美亚洲成人免费电影| 91色综合久久久久婷婷| 91精品啪在线观看国产日本| 亚洲高清中文字幕一区二三区| 精品人妻少妇免费久久蜜臀av| 亚欧乱色熟女一区二区三区| 好吊视频在线免费观看| 成人精品播放视频在线观看| 日本黄色大波少妇网站| 欧美性做爰片免费视频网| 日韩一区二区中文字幕| 亚洲人妻av一区二区| 亚洲一区二区日韩人妻| 久久96国产精品久久秘臀| 久久婷婷国产综合色啪| 国产精品中文一区二区三区| 外国男人搞亚洲女人在线| 中文字幕人妻系列东京热| 成人在线午夜你懂的视频| 97碰碰视频在线观看| 国模在线视频一区二区| 精品国产a级黄毛网站| 日本一区二区三区免费不卡视频 | 亚洲国产精品激情在线| 日本高清av一区二区| 亚洲一区二区偷拍精品| 欧美亚洲精品在线观看| 日韩亚洲精品99综合观看| 色婷婷综合激情一区二区| 国产精品呦呦国产精品尤物| 中文字幕精品一区二区三区精品| 欧美伊人久久大综合精品| 亚洲综合av婷婷激情| 日韩精品一二三区乱码| 国产一区二区三区日本精品| 久久精品噜噜噜成人av农村| 日本高清不卡在线播放| 国产情侣自拍在线观看|