溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中的try?excpet?BaseException怎么使用

發(fā)布時(shí)間:2023-03-28 15:48:15 來源:億速云 閱讀:82 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Python中的try excpet BaseException怎么使用”,在日常操作中,相信很多人在Python中的try excpet BaseException怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python中的try excpet BaseException怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

try ...except 是最常見的捕獲處理異常的結(jié)構(gòu),其主要作用是將可能出現(xiàn)問題的代碼塊用try :包裹起來,不至于出現(xiàn)錯(cuò)誤讓程序崩潰,無法執(zhí)行下去

常見的try ...excpet 的結(jié)構(gòu)有三種

try:
     pass
except BaseException as e :
    異常處理模塊

try 中包含著可能發(fā)生異常的程序代碼,except 塊中包含著,發(fā)生異常后,用來捕獲異常和處理異常代碼

如果在try包含的模塊中發(fā)生了異常則會跳轉(zhuǎn)到 except的模塊中,去執(zhí)行 except中的代碼,excpet中的模塊會處理異常,如果沒有發(fā)生異常,則程序不會執(zhí)行except中的代碼。

書寫了一段用于測試會報(bào)錯(cuò)的代碼塊

try:
    test = eval(str(input("請輸入一個(gè)字符串: ")))
    tests = test + "This is a piece of test code"
except BaseException as e:
    print("出現(xiàn)的錯(cuò)誤可能是%s"%e)
print("這是一段測試輸出")

Python中的try?excpet?BaseException怎么使用

錯(cuò)誤提示: unsupported operand type(s) for +: 'int' and 'str'

不支持 :數(shù)據(jù)類型:“int”和“str”拼接(+)操作

一段正確的代碼輸入:

try:
    test = str(input("請輸入一個(gè)字符串: "))
    tests = test + " "+"This is a piece of test code"
    print("輸入正確的內(nèi)容則會執(zhí)行的代碼塊:",tests)
except BaseException as e:
    print("出現(xiàn)的錯(cuò)誤可能是%s"%e)
print("這是一段測試輸出")

Python中的try?excpet?BaseException怎么使用

字是不允許和字符串拼接的只有把數(shù)字轉(zhuǎn)換成字符串才允許拼接。

這是一段沒有用try except:處理的有問題代碼塊

如果不用try...except... :對可能出現(xiàn)的代碼進(jìn)行包裹,程序就會崩潰,影響后續(xù)代碼進(jìn)行

test = int(input("請輸入一個(gè)字符串: "))
tests = test + " "+"This is a piece of test code"
print("這是一段測試輸出")

Python中的try?excpet?BaseException怎么使用

多個(gè)except 語句、

如果寫入的代碼出錯(cuò)類型不太清楚,可以多寫幾個(gè)捕獲異常語句,記得在最后加上一個(gè)except BaseException 用來做兜底操作(假如出現(xiàn)的錯(cuò)誤都不是你用except 捕獲的異常你可以用它來兜底),它是所有異常的父類包含了所有常見的異常

arr = {
    "xiaomi":"123",
    "xiaozhang":"456",
    "xiaodede":"7,8,9"
}
arrs = (1,2,3,4,5)
 
try:
    3 / 0
 
    print(arrs[6])
except IndexError :
    print('導(dǎo)入包失敗')
except KeyError :
    print('在字典中找不到指定的鍵')
except ImportError :
    print("索引時(shí)沒有找到指定序列")
#兜底捕獲錯(cuò)誤,BaseException 是所有錯(cuò)誤的父類可以說是包含了所有常見的錯(cuò)誤
except BaseException as e:
    print(arr["mayuanyuan"])
    print(e)

上述操作和下面的操作表達(dá)的功能是一致的,你也可以將所有可能出現(xiàn)的異常寫在一個(gè) except 中,異常和異常之間 用逗號隔開

arr = (1,2,3,4,5)
try:
    int("3.1415926")
    print(add)  # 未定義
    print(arr[6]) #超出索引
 
except (IndexError,NameError,ValueError)as e:
    print(e)

3 try... except... esle

如果try 中包含的代碼塊沒有異常,則會接著執(zhí)行else 中的語句,不會去執(zhí)行 excpet中的代碼塊(這段代碼只有try中的代碼塊拋出異常時(shí),則會使用except去捕獲)

try:
    arr = int(input("請輸入一個(gè)整數(shù): "))
except BaseException as e:
    print(e)
else:
    arrs = arr + 111
    print(arrs)
print("測試結(jié)束")

Python中的try?excpet?BaseException怎么使用

異常處理模塊就講到到這里了,我要談到關(guān)于異常處理模塊try except實(shí)際用途,有的博主會談一些簡單的案例,可能有的同學(xué)對這個(gè)模塊認(rèn)識的并不是很深入,為什么呢?

try:
   4 /0
except BaseException as e:
    print(e)
報(bào)錯(cuò): division by zero

明明你知道是,除零操作,你為什么不改呢?有的錯(cuò)誤你明明知道什么?故意把錯(cuò)誤寫出來,難道就是為了測試錯(cuò)誤嗎?

所以經(jīng)過我的考慮給了大家一個(gè)好玩的

登錄密碼案例的操作,如果密碼輸入正確,則會提示登錄成功,錯(cuò)誤的話則會繼續(xù)輸入,錯(cuò)誤輸入大于三次時(shí)就會提示:"輸入錯(cuò)誤次數(shù)過多密碼已鎖定“

i = 0
while True:
    if i == 3:
        print("輸入錯(cuò)誤次數(shù)過多密碼已鎖定")
        break
    try:
        Divisor = str(input("請輸入一個(gè)整數(shù): "))
        # A = Divisor/1
        # B = A+1   #如果輸出有誤就不會執(zhí)行加1操作直接跳到 except當(dāng)中
        # print("結(jié)果是:",B)
        mima = 'ma123'
        if Divisor == mima:
            i = i+1
            print("登錄成功,輸入%s次"%i)
            break
    except:
        i = i+1
        print("密碼輸入錯(cuò)誤請重新輸入:")
print("登陸了%s次"%i)

這是關(guān)于“try... except... esle ”具有實(shí)際用途的一段代碼

提示你輸入密碼,然后根據(jù)密碼的內(nèi)容進(jìn)行適當(dāng)?shù)募用埽唇?/p>

md5 = []
try:
    Divisor = str(input("請輸入你的密碼: "))
 
except:
    print("密碼輸入錯(cuò)誤")
else:
    for i  in  Divisor:
        if i == 1:
            i = "a"
        else:
            i == 2
            i = "b"
    md5.append(i)
    MD5 = Divisor + md5[0]
 
 
 
print("經(jīng)過加密后的數(shù)據(jù)%s"%MD5)

到此,關(guān)于“Python中的try excpet BaseException怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI