5 案例4:簡化除法判斷
5.1 問題
建立mydiv.py指令碼,要求如下:
提示使用者輸入乙個數字作為除數
如果使用者按下ctrl+c或ctrl+d則退出程式
如果使用者輸入非數字字元,提示使用者應該輸入數字
如果使用者輸入0,提示使用者0不能作為除數
5.2 方案
首先,執行try子句(在關鍵字try和關鍵字except之間的語句),輸入數字,讓這個數字被100整除,
1.如果沒有異常發生,忽略except子句,try子句執行後,執行else子句和finally子句,最後執行 try 語句之後的**結束整個程式。
2.如果在執行try子句的過程中發生了異常,異常的型別和 except 之後的名稱相符,那麼對應的except子句將被執行。然後執行finally子句,最後執行 try 語句之後的**結束整個程式。
需要注意的是:允許使用者中斷這個程式(使用ctrl+c或ctrl+d方法)。使用者中斷的資訊會引發keyboardinterrupt 和eoferror 這兩種異常。
乙個 try 語句可能包含多個except子句,分別來處理不同的特定的異常。最多只有乙個分支會被執行。
處理程式將只針對對應的try子句中的異常進行處理,而不是其他的 try 的處理程式中的異常。
try except 語句只有乙個可選的else子句,使用這個子句,必須放在所有的except子句之後。這個子句將在try子句沒有發生任何異常的時候執行。
finally子句是無論異常是否發生,是否捕捉都會執行的一段**,使用finally可以保證檔案總是能正常的關閉
5.3 步驟
實現此案例需要按照如下步驟進行。
步驟一:編寫指令碼
[root@localhost day05]
# vim mydiv.py
#!/usr/bin/env python3
try:
num =
int(
input
("number: "))
result =
100/ num
except valueerror:
print
('請輸入數字'
)except zerodivisionerror:
print
('不允許使用0'
)except
(keyboardinterrupt, eoferror)
:print
('\nbye-bye'
)else
:print
(result)
# 不發生異常才執行的語句
finally
:print
('done'
)# 不管異常是否發生都要執行的語句
print
('end of program'
)#不是必須把所有的語句寫全,常用的有try-except和try-finally組合
步驟二:測試指令碼執行
[root@localhost day05]# python3 mydiv.py
number: 0
不允許使用0
done
end of program
[root@localhost day05]# python3 mydiv.py
number: nighao
請輸入數字
done
end of program
[root@localhost day05]# python3 mydiv.py
number: 3
33.333333333333336
done
end of program
[root@localhost day05]# python3 mydiv.py
number: 55^c
bye-bye
done
end of program
[root@localhost day05]# python3 mydiv.py
number:
bye-bye
done
end of program
《雲計算全棧》 python篇 出版商程式
3 案例3 出版商程式 3.1 問題 建立books.py檔案,實現以下目標 為出版商編寫乙個book類 book類有書名 作者 頁數等屬性 列印例項時,輸出書名 呼叫例項時,顯示該書由哪個作者編寫3.2 方案 建立乙個類,類中建立3種魔法方法 1.init 方法 init 方法用於初始化例項屬性,...
一艘雲計算「全棧」航母已起航
網易雲已經成為乙個巨大的網際網路聯接基礎設施,在幾乎所有企業都在數位化的當下,網易雲希望通過開放技術幫助到企業轉型,攜手合作夥伴促進數字經濟的發展。7月31日,網易雲在雲創大會上發布了單集群可支援5000物理節點的 瀚海 私有雲,以及完整的微服務解決方案 輕舟 工業智慧型平台等最新產品,並聯合浪潮推...
雲計算全棧 基礎知識 計算機儲存單位介紹
計算機儲存單位一般用b b kb mb gb tb pb eb zb yb bb來表示,它們之間的關係是 位元位 bit binary digits 存放一位二進位制數即 0 或 1。最小的儲存單位 位元組 byte 8個二進位制位 b 為乙個位元組 b 1kb kilobyte 千位元組 1024...