python异常包_python异常处理与导入模块与导入包
一.什么是異常?
異常即是一個事件,該事件會在程序執行過程中發生,影響了程序的正常執行。
一般情況下,在Python無法正常處理程序時就會發生一個異常。
異常是Python對象,表示一個錯誤。
當Python腳本發生異常時我們需要捕獲處理它,否則程序會終止執行。
注:語法上的錯誤跟異常處理無關,必須在程序運行前就修正
二.異常處理
捕捉異常可以使用try/except語句。
try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常信息并處理。
如果你不想在異常發生時結束你的程序,只需在try里捕獲它。
語法:
if..else...處理
num1=input('>>: ') #輸入一個字符串試試
ifnum1.isdigit():
int(num1) #我們的正統程序放到了這里,其余的都屬于異常處理范疇
elifnum1.isspace():
print('輸入的是空格,就執行我這里的邏輯')
elif len(num1) ==0:
print('輸入的是空,就執行我這里的邏輯')
else:
print('其他情情況,執行我這里的邏輯')
1.if判斷式的異常處理只能針對某一段代碼,對于不同的代碼段的相同類型的錯誤你需要寫重復的if來進行處理。
2.在你的程序中頻繁的寫與程序本身無關,與異常處理有關的if,可讀性極其的差。
以下為簡單的try....except...else的語法:
try:
<語句> #運行別的代碼
except <名字>:
<語句> #如果在try部份引發了'name'異常
except <名字>,<數據>:
<語句> #如果引發了'name'異常,獲得附加的數據
else:
<語句> #如果沒有異常發生
#ry的工作原理是,當開始一個try語句后,python就在當前程序的上下文中作標記,這樣當異常出現時就可以回到這里,try子句先執行,接下來會發生什么依賴于執行時是否出現異常。
如果當try后的語句執行時發生異常,python就跳回到try并執行第一個匹配該異常的except子句,異常處理完畢,控制流就通過整個try語句(除非在處理異常時又引發新的異常)。
如果在try后的語句里發生了異常,卻沒有匹配的except子句,異常將被遞交到上層的try,或者到程序的最上層(這樣將結束程序,并打印缺省的出錯信息)。
如果在try子句執行時沒有發生異常,python將執行else語句后的語句(如果有else的話),然后控制流通過整個try語句。
萬能的異常捕捉
s1 = 'hello'
try:
int(s1)exceptException as e:print(e)
捕捉異常的幾種方式
s1 = 'hello'
try:
int(s1)exceptIndexError as e:print(e)exceptKeyError as e:print(e)exceptValueError as e:print(e)
多分支
s1 = 'hello'
try:
int(s1)exceptIndexError as e:print(e)exceptKeyError as e:print(e)exceptValueError as e:print(e)exceptException as e:print(e)
s1 = 'hello'
try:
int(s1)exceptIndexError as e:print(e)exceptKeyError as e:print(e)exceptValueError as e:print(e)#except Exception as e:#print(e)
else:print('try內代碼塊沒有異常則執行我')finally:print('無論異常與否,都會執行該模塊,通常是進行清理工作')
#_*_coding:utf-8_*_
__author__ = 'Linhaifeng'
try:raise TypeError('類型錯誤')exceptException as e:print(e)
#_*_coding:utf-8_*_
__author__ = 'Linhaifeng'
classEgonException(BaseException):def __init__(self,msg):
self.msg=msgdef __str__(self):returnself.msgtry:raise EgonException('類型錯誤')exceptEgonException as e:print(e)
使用try..except的方式1:把錯誤處理和真正的工作分開來2:代碼更易組織,更清晰,復雜的工作任務更容易實現;3:毫無疑問,更安全了,不至于由于一些小的疏忽而使程序意外崩潰了;
#常見異常表
注:try...except應該盡量少用,因為它本身就是你附加給你的程序的一種異常處理的邏輯,加多了會使代碼可讀性變得非常差
Python 模塊
一個模塊就是一個包含了python定義和聲明的文件,文件名就是模塊名字加上.py的后綴。如果你退出python解釋器然后重新進入,那么你之前定義的函數或者變量都將丟失,因此我們通常將程序寫到文件中以便永久保存下來,需要時就通過python test.py方式去執行,此時test.py被稱為腳本script。
隨著程序的發展,功能越來越多,為了方便管理,我們通常將程序分成一個個的文件,這樣做程序的結構更清晰,方便管理。這時我們不僅僅可以把這些文件當做腳本去執行,還可以把他們當做模塊來導入到其他的模塊中,實現了功能的重復利用
3.如何使用模塊?
import引入
注:引入同一文件多次,只執行一次
#spam.py
print('from the spam.py')
money=1000
defread1():print('spam->read1->money',1000)defread2():print('spam->read2 calling read')
read1()defchange():globalmoney
money=0
#test.py
import spam #只在第一次導入時才執行spam.py內代碼,此處的顯式效果是只打印一次'from the spam.py',當然其他的頂級代碼也都被執行了,只不過沒有顯示效果.
importspamimportspamimportspam'''執行結果:
from the spam.py'''
模塊與命名空間
總結
以上是生活随笔為你收集整理的python异常包_python异常处理与导入模块与导入包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux进程假死的原因_一次Sprin
- 下一篇: count 多个字段_一句话实现字段拆分