假設成年人的體重和身高存在此種關係:
身高(厘公尺)-100=標準體重(千克)
如果乙個人的體重與其標準體重的差值在正負5之間,顯示「體重正常」,其他則顯示「體重超標」或體重不達標
編寫程式,能處理使用者輸入的異常,並且使用自定義異常類來處理身高小於30cm、大於250cm的異常情況
try:
length=int(input("請輸入你的身高(cm):"))
weight=int(input("請輸入你的體重(kg):"))
standrd_weight=length-100
diff_weight=weight-standrd_weight
assert diff_weight<=0.05 and diff_weight>=-0.05,"體重不正常!"
except assertionerror as reason:
print(reason)
else:
print("體重正常")
修改後的版本:
class input_problem(exception):
"""自定義異常"""
def __init__(self,length,max,min):
self.length=length
self.max=max
self.min=min 「」「給類設定屬性」「」
try:
length=int(input("請輸入你的身高(cm):"))
weight=int(input("請輸入你的體重(kg):")) 「」「使用者輸入」「」
standrd_weight=length-100
diff_weight=weight-standrd_weight
if length>=30 and length<=250:
assert diff_weight<=5,"體重超標" """assert語句丟擲異常"""
assert diff_weight>=-5,"體重不達標!"
else:
raise input_problem(length,250,30)
except assertionerror as reason:
print(reason)
except input_problem:
print("input_problem_erroer:輸入的身高是:%dcm,不能超過250cm,不能少於30cm"%length) """新增異常描述"""
else:
print("體重正常")
錄入乙個學生成績,把該學生的成績轉換為a-優秀,b-良好,c-合格,d-不及格的形式,最後將該學生的成績列印出來
要求使用assert斷言語句處理分數不合理的情況:
while true:
try:
score=int(input("請輸入你的成績:"))
assert score>=0 and score<=100,"輸入有誤請重新輸入!"
if score>=90:
print("成績為:a")
elif score>=80 and score<=89:
print("成績為:b")
elif score>=60 and score<=79:
print("成績為:c")
else:
print("成績為:d,不及格!!!")
except assertionerror as reason:
print(reason)
python 丟擲異常 python 異常
異常的概念 捕獲異常 異常的傳遞 丟擲異常 程式在執行時,如果 python 直譯器 遇到 到乙個錯誤,會停止程式的執行,並且提示一些錯誤資訊,這就是 異常 程式停止執行並且提示錯誤資訊 這個動作,我們通常稱之為 丟擲 raise 異常 程式開發時,很難將 所有的特殊情況 都處理的面面俱到,通過 異...
Python3 檔案 異常(作業)
一 檔案 from datetime import datetime import io 自定義的上下文管理器 計時器 class runtime object def enter self self.start time datetime.now return self.start time de...
作業0304異常處理
class a pass try print a.x except attributeerror as x print x a try print a age except keyerror as a print a a 1,2,3,4,5 b iter a try while true print...