面向對象編程思想
面向對象:一種編程思想,將數據封裝到對象的內部,通過對象的方法操作數據,通過對象和對象之間的相互調用配合完成整個功能的過程。
面向對象的特征:封裝、繼承、多態
面向對象:站在對象的角度看問題
異狀概述
異常:就是不正常的情況,程序開發中錯誤和BUG都是補充正常的情況
異常發生的狀況:引發程序崩潰
處理異常(容錯):包容出現的不正常的錯誤,保存程序的正常執行
處理異常的方法
- tey-except:異常捕獲處理
- assertions:斷言測試
基本語法:
代碼如下:
print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
print("\t\t計算器系統")
print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
num_str = input("請輸入要計算的數值:")
try:
num_int = int(num_str) #ValueError
except ValueError as e:# 不指定要處理的具體異常,意味這可以處理所有可能出現的異常!
print("不好意思,您輸入了非法數據,%s" % e)
else:
print("用戶輸入了第一個數據:%d" % num_int)
try:
可能出現異常的代碼
except<異常名稱>:
一旦出現異常執行的代碼
else:
沒有異常時執行的代碼
finally:
不論是否有異常都執行的代碼
異常處理步驟:
暴露異常:讓錯誤充分暴露出來
定位異常:定位錯誤出現的位置
處理異常:try包含,except處理
常見的異常:
- 所有異常的超類:BaseException
- 常規錯誤的異常超類 Exception
- 常見異類:
- KeyboardInterrupt
- ArithmeticError
- FloatingPointError
- AttributeError
- EOFError
- IndexError
- SyntaxError
-......
處理異常——基礎操作
不捕獲具體異常
- try:
- 可能出現異常的代碼
- except:
- 出現異常之后要執行的代碼
捕獲具體異常
- try:
- 可能出現異常的代碼
- except Exception as e:
- 出現異常之后執行的代碼
處理多個異常
代碼如下:
try:
c = int(input("請輸入您的選項:")) #ValueError
if c == 1:
f = open("d:/test.txt") # FileNotFoundError
print(f.read())
f.close()
except ValueError as e:
print("選項輸入錯誤:%s" % e)
except FileNotFoundError as e:
print("文件讀取錯誤:%s" % e)
except Exception as e:
print("程序中出現了未知錯誤:%s" % e)
print("程序執行完成..")
except 捕獲多個異常
- try:
- 可能出現異常的代碼
- except(Excp1 [,Excp2,Excp3,Excp4...Excpn]):
- 上述任意異常出現之后要執行的代碼
多個except捕獲異常
- try:
- 可能出現異常的代碼
- except Excp1:
- 出現Excp1異常之后執行的代碼
- except Excp2:
- 出現Excp2異常之后執行的代碼
拋出異常——轉換異常
程序執行出現標準異常
try捕捉異常
except轉換自定義異常
raise 拋出[自定義異常]
自定義異常
# V2.0
try:
num = int(input("請輸入一個數值:"))
except ValueError: # 捕獲系統異常
raise NumError()
else:
print("用戶輸入了:%d" % num)
print("程序執行完成")
'''
# 3.0
# 定義了一個輸入數值的函數:開發人員A開發的代碼
def inputNumber():
try:
num = int(input("請輸入一個數值:"))
except ValueError: # 捕獲系統異常
raise NumError()
else:
print("用戶輸入了:%d" % num)
return num
# 開發人員B在開發的代碼
# 調用輸入數值的方法
try:
num = inputNumber()
except NumError as e:
print("出現了異常信息:%s" % e)
異常處理:else
try
- 捕獲異常
- 可能出現異常的代碼
except
- 處理異常
- 處理異常代碼
else
- 正常操作
- 無異常執行的代碼
異常處理:finally
代碼如下:
try:
f = open("d:/test.txt", "w")
f.write(["a", "b"])
except FileNotFoundError as e:
print("文件操作失敗")
finally:
f.close()
- try
- except
- else
- finally