1. 程式人生 > >Python教程9

Python教程9

Coding 代碼 %d pri 輸入密碼 一個 NPU 錯誤代碼 根據

Python教程9

  1.異常

# -*-coding:utf-8-*-
"""
1.異常:程序運行時,如果python解釋器遇到一個錯誤,會停止程序的執行,並提示一些錯誤的信息
這就是異常
2.程序停止執行並且提示錯誤信息這個動作,我們通常稱之為:拋出異常

3.程序開發時,很難將所有的特殊情況都處理到,通過異常捕獲,可以針對突發事件做幾種處理
,從而保證程序的穩定性和健壯性

"""

"""
捕獲異常的語法:
1.如果在程序開發中,對某些代碼的執行不能確定是否正確,可以增加try()來捕獲異常
2.語法格式如下:
try:
    嘗試執行的代碼
except:
    出現錯誤的處理
""" # try語法,執行錯誤不會停止程序的執行 try: # 不確定能否正確執行的代碼 num = int(input("請輸入整數:")) print("你的輸入:%d" % num) except: # 錯誤代碼的處理 print("請輸入正確的整數") print("-" * 50) # 錯誤類型的捕獲: # 用戶輸入整數,使用8除以輸入整數,並且輸出 print("錯誤類型的捕獲演示") try: num1 = int(input("請輸入整數:")) result = 8 / num1 print(result) except
ZeroDivisionError: # 報錯類型的第一個單詞 print("除0錯誤") except ValueError: print("請輸入正確的整數:") # 捕獲未知錯誤 print("捕獲未知錯誤演示----------") try: num2 = int(input("請輸入整數:")) result = 8 / num2 print(result) except ValueError: print("請輸入正確的整數:") except Exception as result1: print("未知錯誤 %s" % result1)
""" 異常捕獲的完整語法: try: 嘗試執行的代碼 except 錯誤類型1 錯誤處理 except (錯誤類型1,錯誤類型2) 錯誤處理 except Exception as result: 未知錯誤處理 else: 沒有異常時執行的代碼 finally: 無論是否異常,都會執行的代碼 """ print("完整異常語法演示----------") try: print("嘗試執行。。。。") num3 = int(input("請輸入整數:")) result = 8 / num3 print(result) except ValueError: print("請輸入正確的整數:") except Exception as result: print("未知錯誤 %s" % result) else: print("嘗試成功") finally: print("無論是否成功,都會執行的代碼")

  2.異常的傳遞,主動拋出異常

# -*-coding:utf-8-*-
"""
異常的傳遞:當函數/方法執行出現異常,會將異常傳遞給函數/方法的調用一方
如果傳遞到主程序,仍然沒有異常處理,程序才會終止
提示:
    1.在開發中,可以在主函數中增加異常捕獲
    2.而主函數調用其他函數,只要出現異常都會傳遞到主函數的遺產捕獲中
    3.這樣不需要代碼中,增加大量的異常捕獲,保證代碼的整潔
"""


def demo1():
    return int(input("請輸入整數:"))


def demo2():
    return demo1()


# 利用異常的傳遞性,在主程序捕獲異常
try:
    print(demo2())
except ValueError:
    print("請輸入正確的整數:")
except Exception as result:
    print("未知錯誤 %s" % result)

"""
拋出raise異常:
    在開發中,除了代碼執行出錯,python解釋器拋出異常錯誤外,還可以根據
應用程序的業務需求,主動拋出異常

拋出異常:
python中提供Exception異常類
1.創建一個Exception對象
2.使用raise關鍵字拋出異常

示例:提示用戶輸入密碼,若長度小於8,拋出異常
"""
print("**********主動拋出異常演示************")


def input_password():
    # 提示輸入密碼
    pwd = input("請輸入密碼:")
    # 判斷密碼長度>=8
    if len(pwd) >= 8:
        return pwd
    # 如果<8,主動拋出異常
    print("主動拋出異常")
    # 創建異常對象
    ex = Exception("密碼長度不夠")
    # 主動拋出異常
    raise ex


try:
    print(input_password())  # 提示不用try去捕獲異常,此行代碼報什麽錯誤
except Exception as result:
    print(result)

Python教程9