練習題 036:處理多種錯誤
🌙
深色模式
大家一起去吃熱炒,總共吃了 3000 元,你寫了一個「AA 制分帳計算機」準備要拿來算每個人該出多少錢。
但是,如果喝醉的朋友在欄位裡輸入了「五人」(國字),或是因為今天有人請客而輸入「0」,都會造成計算程式崩潰。請用多個
except
來處理不同狀況!
任務接力:
1. 修正下方的
split_bill()
函式,用
try:
把裡面原本的計算與印出程式包裝起來。
2. 攔截由
int()
轉換失敗引發的
ValueError
,若發生則印出:
錯誤:請輸入數字!
3. 攔截由數學除以 0 引發的
ZeroDivisionError
,若發生則印出:
錯誤:分母不能為 0!
4. 把
except Exception as e:
加在最後面作為其它任何未預期錯誤的保底,印出格式如下:
發生了其他錯誤:{e}
def split_bill(people_input): # TODO:請用 try/except 把下方兩行程式包起來 people = int(people_input) print(f"每人要出 {3000 / people} 元") # ----- 以下程式碼請勿修改 ----- split_bill("五") # 應該要印出「錯誤:請輸入數字!」 split_bill(0) # 應該要印出「錯誤:分母不能為 0!」
🏃♀️➡️ 跑看看 🏃♀️
⚠️ 如果程式執行過久(不小心寫了無限迴圈),瀏覽器當掉,請重開網頁。