錯誤與例外概念
#錯誤:
1.文法錯誤:程式碼不符合解釋器或編譯器語法
2.邏輯錯誤:不完整或不合法輸入或計算出現問題
#異常:執行過程中出現萬體導致程式無法執行
# 1.程式遇到邏輯或演算法問題
2.運作過程中電腦錯誤(記憶體不夠或IO錯誤)
錯誤與異常差異
##錯誤:
程式碼執行前的語法或邏輯錯誤,
語法錯誤在執行前修改,邏輯錯誤無法修改
異常分為兩個步驟:
1.異常產生,檢查到錯誤且解釋器認為是異常,拋出異常;
2.異常處理,截獲異常,忽略或終止程序處理異常
Python 常見錯誤
常見錯誤:ipython下
1. a : NameError
在沒有定義變數的時候直接引用
2. if True : SyntaxError
語法錯誤
3. f = open('1.txt') : IOError
試圖開啟一個不存在的檔案的時候
#o # 嘗試開啟一個不存在的檔案的時候# 4. 10/0 : ZeroDivisionError
5. a = int('dd') : ValueError
進行強制類型轉換的時候遇到的錯誤
try- -except異常處理(1)
try-except:異常處理
try: try_suite except Exception [, e]: exception_block
1.try用來捕捉try_suite中的錯誤,並且將錯誤交給except處理
# 2.except用來處理異常,如果異常處理和設定捕獲異常一致,使用exception_block處理異常
例:
try: a except Exception, e: print e
try-except捕獲異常分析:
#Case 1:
try: undef except: print 'catch an except'
Case 2:
try: if undef except: print 'catch an except'
case 1:可以捕獲異常,因為是運行時錯誤
case 2:不能捕獲異常,因為是語法錯誤,運行前錯誤
Case 3:
try: undef except NameError, e: print 'catch an except', e Case 4: try: undef except IOError, e: print 'catch an except', e
case 3:可以捕獲異常,因為設定捕獲NameError異常
case 4:不能捕獲異常,因為設定IOError,不會處理NameError
try--except異常處理(2)
try-except:處理多個例外
try: try_suite except Exception1 [e]: exception_block1 except Exception2 [e]: exception_block2 except ExceptionN [e]: exception_blockN
try-except--else使用
try: try_suite except Exception1 [e]: exception_block1 else: none_exception
如果沒有異常,執行else語句中的代碼
try--finally語句
try-finally語句:
try: try_suite finally: do_finally
1.如果try語句沒有捕獲錯誤,程式碼執行do_finally語句
2.如果try語句捕獲錯誤,程式首先執行do_finally語句,然後將捕獲到的錯誤交給python解釋器處理
#try-finally語句:
規則:try-finally無論是否偵測到異常,都會執行finally程式碼
作用:為例外處理事件提供清理機制,用來關閉檔案或釋放系統資源
try-except-finally使用:
try: try_suite except: do_except finally: do_finally
1.若try語句沒有捕獲異常,執行完try代碼段後,執行finally
2.若try捕獲異常,首先執行except處理錯誤,然後執行finally
try-except-else-finally使用:try:
try_suite
except:
do_except
else:
do_else
finally:
do_finally
1.若try語句沒有捕獲異常,執行完try代碼塊後,執行else代碼塊,最後執行finally
2.若try捕獲異常,先執行except處理錯誤,然後執行finally
#with語句
with語句:
##with context [as var]: with_suite1.with語句用來取代try-except-finally語句,是程式碼更簡潔;2.context表達式回傳是一個物件;3.var用來保存context返回對象,單一返回值或元祖;4.with_suite使用var變數來對context返回對象進行操作……
###raise語句######raise語句用於主動拋出例外######語法格式:raise [ exception [, args]]######exception: 異常類別######args: 描述異常訊息的元組######例:###raise TypeError raise TypeError, 'Test Error' raise IOError, 'File Not Exist'###assert語句### ###斷言語句:assert語句用來偵測表達式是否為真,如果為假,引發AssertionError錯誤;######語法格式:assert expression [, args]#######expression:表達式######args:判斷條件的描述資訊#####例:###
assert 7==6 assert 0, 'Test Error'###Python標準與自訂例外狀況#####標準例外:python內建異常,程式執行前就已經存在######自訂異常:######1.python允許自訂異常,用於描述python中沒有涉及的異常情況######2.自訂異常必須繼承Exception類別######3.自訂例外只能主動觸發######自訂例外範例:###
class FileError(IOError): pass raise FileError, 'Test FileError' class CustomError(Exception): def __init__(self, info): Exception.__init__(self) self.errorinfo = info def __str__(self): return 'CustomError: %s' % self.errorinfo try: raise CustomError('test CustomError') except CustomError, e: print 'Error Info : %s' % e###相關推薦:《###Python教學###》# ##
以上是python異常與錯誤區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python和C 各有優勢,選擇應基於項目需求。 1)Python適合快速開發和數據處理,因其簡潔語法和動態類型。 2)C 適用於高性能和系統編程,因其靜態類型和手動內存管理。

選擇Python還是C 取決於項目需求:1)如果需要快速開發、數據處理和原型設計,選擇Python;2)如果需要高性能、低延遲和接近硬件的控制,選擇C 。

通過每天投入2小時的Python學習,可以有效提升編程技能。 1.學習新知識:閱讀文檔或觀看教程。 2.實踐:編寫代碼和完成練習。 3.複習:鞏固所學內容。 4.項目實踐:應用所學於實際項目中。這樣的結構化學習計劃能幫助你係統掌握Python並實現職業目標。

在兩小時內高效學習Python的方法包括:1.回顧基礎知識,確保熟悉Python的安裝和基本語法;2.理解Python的核心概念,如變量、列表、函數等;3.通過使用示例掌握基本和高級用法;4.學習常見錯誤與調試技巧;5.應用性能優化與最佳實踐,如使用列表推導式和遵循PEP8風格指南。

Python適合初學者和數據科學,C 適用於系統編程和遊戲開發。 1.Python簡潔易用,適用於數據科學和Web開發。 2.C 提供高性能和控制力,適用於遊戲開發和系統編程。選擇應基於項目需求和個人興趣。

Python更適合數據科學和快速開發,C 更適合高性能和系統編程。 1.Python語法簡潔,易於學習,適用於數據處理和科學計算。 2.C 語法複雜,但性能優越,常用於遊戲開發和系統編程。

每天投入兩小時學習Python是可行的。 1.學習新知識:用一小時學習新概念,如列表和字典。 2.實踐和練習:用一小時進行編程練習,如編寫小程序。通過合理規劃和堅持不懈,你可以在短時間內掌握Python的核心概念。

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3漢化版
中文版,非常好用

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。