两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

上一節(jié)我們已經(jīng)了解了異常情況的發(fā)生,這一節(jié)我們來學(xué)習(xí)一下異常處理語句,先舉個例子,假定甲乙丙丁4輛車分別能承載1噸、2噸、3噸、4噸的貨物,當(dāng)公司接來了任務(wù)(貨物不可拆分),會首先去考慮甲車能否承載,如果不能承載就交由乙車去裝運(yùn),如果不能就繼續(xù)選擇車輛,如果最后都沒辦法處理該貨物,那么就終止該程序,我們可以把這個貨物看作異常來理解。

處理異常的語句有多種形式,分別為try...except語句、多except代碼塊、try...except...else語句和try...except...finally語句、try...excpept...else語句。

1. try...except語句

這種形式為我們常用的形式,它的語法格式為:

try:
    block
Except [typeerror ]:
    deal

block為我們的程序執(zhí)行過程中可能會拋出異常的語句,typeerror為錯誤類型,如果省略就不指定類型,即捕獲全部異常,deal為具體的處理語句。

我們通過例子來了解一下這個語句,代碼如下:

def test():
  number = int(input('請輸入一個數(shù)字:'))
  if 15 / number >= 3:
    print('ok')
  else:
    print('wrong')
try:
  test()
except:
  print('分母為0的異常情況')

我們通過幾個輸入情況來測試結(jié)果:

請輸入一個數(shù)字: 5
ok
請輸入一個數(shù)字:2
ok
請輸入一個數(shù)字:dotcpp
分母為0的異常情況
請輸入一個數(shù)字:0
分母為0的異常情況

我們可以發(fā)現(xiàn)我們在except語句中沒有指定類型,所以它捕獲了所有異常并執(zhí)行相關(guān)語句,因此我們輸入了dotcpp也觸發(fā)了這種異常,因此我們需要對代碼進(jìn)行修改,我們需要把except語句更改為:except ZeroDivisionError,然后我們再次執(zhí)行,輸出結(jié)果為:

請輸入一個數(shù)字:dotcpp
Traceback (most recent call last):
  File "C:/Users/輕煙/PycharmProjects/untitled1/teach/test.py", line 8, in <module>
    test()
  File "C:/Users/輕煙/PycharmProjects/untitled1/teach/test.py", line 2, in test
    number = int(input('請輸入一個數(shù)字:'))
ValueError: invalid literal for int() with base 10: 'dotcpp'

輸入0的時候:

請輸入一個數(shù)字:0
分母為0的異常情況

通過這兩種方式我們來總結(jié)一下,如果我們在except語句中不指定類型,那么無論test()中出現(xiàn)任何錯誤都會執(zhí)行except語句,如果我們指定了類型的時候,只有指定類型的錯誤發(fā)生的時候才會觸發(fā)這種異常機(jī)制。

2. except代碼塊

except代碼塊就是對于try...except語句的一種擴(kuò)展,對于一個問題可能會出現(xiàn)多種錯誤的情況,那么我們可以對每一種情況都做一定的處理,語法格式如下:

Try:
    Test()
except [異常類型1]:
    deal
except [異常類型2]:
    deal
except [異常類型3]:
    deal

代碼如下:

def test():
  number = int(input('請輸入一個數(shù)字:'))
  if 15 / number >= 3:
    print('ok')
  else:
    print('wrong')
try:
  test()
except ZeroDivisionError:
  print('分母為0的異常')
except ValueError:
  print('傳入的值異常')

對于這種多except語句的處理機(jī)制,我們輸入0和dotcpp的時候輸出結(jié)果為:

請輸入一個數(shù)字:dotcpp
傳入的值異常
請輸入一個數(shù)字:0
分母為0的異常

3. 總結(jié)

本節(jié)里我們主要學(xué)習(xí)了基礎(chǔ)的ty...except語句的用法,異常類型的選擇決定了我們是否所有異常執(zhí)行except中的語句,所以一定要注意異常類型的選擇,下一節(jié)我們來學(xué)習(xí)try...except語句的嵌套和try...except...else語句。


點(diǎn)贊(2)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時間)