Python簡化除法判斷

1.1 問題
創建mydiv.py腳本,要求如下:

提示用戶輸入一個數字作爲除數
如果用戶按下Ctrl+C或Ctrl+D則退出程序
如果用戶輸入非數字字符,提示用戶應該輸入數字
如果用戶輸入0,提示用戶0不能作爲除數
1.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可以保證文件總是能正常的關閉

1.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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章