tft每日頭條

 > 生活

 > python 處理異常的方法

python 處理異常的方法

生活 更新时间:2025-01-24 22:46:11

在Python中導緻程序無法運行的有2種情況。

1;語法錯誤,這是緻命錯誤,需要重新查看代碼進行修改,比如:縮進問題,比如關鍵字錯誤。

2;程序異常,這不是緻命錯誤,我們可以捕獲它。

在Python中處理異常是用try - except代碼代碼塊來處理的。

學習這章的目的是:告訴Python發生異常時怎麼辦。使用try-except代碼塊後,即便出現異常,程序也将繼續運行:我們可以編寫的友好的錯誤消息,而不是令用戶迷惑的traceback。

舉個例子:

python 處理異常的方法(Python自學從入門到實踐)1

zeroDivisionError: integer division or modulo by zero

大概意思是說;除數不能為0.

如何通過try - except,捕獲這個異常,并且不會出現程序異常呢?

def ceshi(a,b): return a//b b=int(input('請輸入一個除數:')) a=int(input('請輸入一個被除數:')) try: print(ceshi(a,b)) except ZeroDivisionError: print('除數不能為0')

python 處理異常的方法(Python自學從入門到實踐)2

這樣來看,就算除數輸入0,也不會出現異常,不過還有一個問題,就是程序結束了,應該要讓用戶知道不能輸入0之後,能輸入其他數才對。加入一個while循環 和 退出條件完善一下:

def ceshi(a,b): return a//b while True: b = input('請輸入一個除數:') if b =='退出': break else: a = int(input('請輸入一個被除數:')) b = int(b) try: print(ceshi(a,b)) except ZeroDivisionError: print('除數不能為0')

現在需要思考另外一個問題了,就是except 後面到底應該跟什麼内容呢?我發現後面可以跟很多内容,都是大寫字母開頭的,我們可能需要記得少部分,但不需要全部去記憶,可以當發生異常的時候,把異常的第一段加入進去 即可。再看一個例子:

我想讀取一個不存在的文件,Python抛出了異常:FileNotFoundError。現在我可以利用這個異常,捕獲它,然後提醒用戶;

python 處理異常的方法(Python自學從入門到實踐)3

FileNotFoundError。現在我可以利用這個異常,捕獲它,然後提醒用戶;

dizhi ="/Users/xuxizhi/Desktop/Python523.txt" try: with open(dizhi,'r',encoding='utf-8')as a: a.write('我想用隻讀的方式打開這個文件,但現在這個文件不存在,應該會出現異常') except FileNotFoundError: print(f"提醒~提醒~{dizhi}不存在,無法讀取")

python 處理異常的方法(Python自學從入門到實踐)4

那是不是任何的異常都可以捕獲呢?我們多試試。

python 處理異常的方法(Python自學從入門到實踐)5

異常的開頭是:ValueError 我們來試試捕獲它。

python 處理異常的方法(Python自學從入門到實踐)6

在實際運用中,客戶的輸入總是會出現奇怪的情況,為了讓程序正常運行,我們需要捕獲異常,并且告知客戶應該怎麼輸入才正确,這樣可以給到客戶良好的體驗。

來看下面的案例,比較兩個數的大小:1;要求客戶輸入的是數值,2;并且限定了輸入數值的範圍(這僅僅是我做試驗用的方法)

def ceshi(a, b): if a > b: return f"{a}比{b}大" else: return f"{a}比{b}小" while True: try: a = int(input('請輸入數值a:')) except ValueError: print('隻能輸入數值哈 輸入其他都沒有用') else: if a > 10: print('填入的數值不能大于10') continue else: print('輸入正确') break while True: try: b = int(input('請輸入數值b:')) except ValueError: print('隻能輸入數值哈 輸入其他都沒有用') else: if b > 10: print('填入的數值不能大于10') continue else: print('輸入正确') break print(ceshi(a, b))

python 處理異常的方法(Python自學從入門到實踐)7

我們需要學會這種方法,其目的是讓程序能夠正常運行并給客戶良好的體驗,同時也加深我們對可能發生的所有情況都計算在内。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved