欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

?Python錯(cuò)誤與異常處理

 更新時(shí)間:2022年01月20日 08:50:23   作者:戰(zhàn)士小小白?  
這篇文章主要介紹了?Python錯(cuò)誤與異常處理,錯(cuò)誤與異常處理在Python中具有非常重要的地位,熟練的使用錯(cuò)誤與異常處理能夠?yàn)槲覀兊腜ython編程提供很多的便利之處,希望您閱讀完本文后能夠有所收獲

1. 從鍵盤(pán)輸入一個(gè)整數(shù),求 100 除以它的商,并顯示輸出。要求對(duì)從鍵盤(pán)輸入的數(shù)值進(jìn)行異常處理。

try:
? ? n=int(input("請(qǐng)輸入一個(gè)整數(shù):"))
? ? x=100/n
? ? print(x)
except ValueError:
? ? print("異常,請(qǐng)重新輸入:")
else: ? ? ? ? #可選項(xiàng),必須try-except語(yǔ)句為前提
? ? print("程序正常運(yùn)行,沒(méi)有捕捉到異常")

2.編程實(shí)現(xiàn)索引超出范圍異常 Index Error 類型。例如:chars=["a","b",100,-37,2]

try:
? ? chars=["a","b",100,-37,2]
? ? chars[5]="k" ? ? ? ? ? ? #產(chǎn)生該類型異常
except IndexError:
? ? print("異常,索引超出范圍")
else: ? ? ? ? #可選項(xiàng),必須try-except語(yǔ)句為前提
? ? print("程序正常運(yùn)行,沒(méi)有捕捉到異常")

  3.錄入一個(gè)學(xué)生的成績(jī),把該學(xué)生的成績(jī)轉(zhuǎn)換為 A 優(yōu)秀、B 良好、C 合格、D 不及格的形式,最后將該學(xué)生的成績(jī)打印出來(lái)。要求使用 assert 斷言處理分?jǐn)?shù)不合理的情況。

try:
? ? score=int(input('請(qǐng)輸入學(xué)生的成績(jī):'))
? ? assert 0<=score<=100 ?#斷言 成績(jī)必須在0-100范圍內(nèi)
? ? if score >= 90:
? ? ? ? print("A優(yōu)秀")
? ? if score >= 80 and score < 90:
? ? ? ? print("B良好")
? ? if score >=60 and score <80:
? ? ? ? print("C合格")
? ? if score <60:
? ? ? ? print("D不及格")
except ValueError:
? ? print("異常,輸入必須為整數(shù)")
except AssertionError: ?#斷言異常信息
? ? print("異常,輸入的成績(jī){}不在0-100范圍內(nèi)".format(score))
else: ? ? ? ? #可選項(xiàng),必須try-except語(yǔ)句為前提
? ? print("程序正常運(yùn)行,沒(méi)有捕捉到異常")

 4. 定義一個(gè) Circle 類,其中有求面積的方法,當(dāng)半徑小于 0 時(shí), 拋出一個(gè)用戶自定義異常

import math
class RangeErrorException(Exception):#自定義異常類,判斷半徑范圍是否異常
? ? def __init__(self, error_reason='異常,圓的半徑不能為負(fù)數(shù)!'):
? ? ? ? Exception.__init__(self, error_reason)#定義的繼承自Exception的類RangeErrorException
class Circle():
? ? def __init__(self,r):
? ? ? ? self.r=r
? ? ? ? if self.r < 0:#當(dāng)遇到自己設(shè)定的錯(cuò)誤時(shí),使用raise語(yǔ)句拋出自定義的異常
? ? ? ? ? ? raise RangeErrorException
? ? def getS(self): ? #計(jì)算獲取圓的面積
? ? ? ? area = math.pi *self.r *self.r
? ? ? ? return area
try:
? ? r=eval(input("請(qǐng)輸入半徑r:"))
? ? c=Circle(r)
? ? print("面積為:{:.2f}".format(c.getS()))
except RangeErrorException as reason:
? ? print(reason)
else: ? ? ? ? #可選項(xiàng),必須try-except語(yǔ)句為前提
? ? print("程序正常運(yùn)行,沒(méi)有捕捉到異常")

 5. 假設(shè)成年人的體重和身高存在此種關(guān)系:  身高(厘米)-100=標(biāo)準(zhǔn)體重(千克)   如果一個(gè)人的體重與其標(biāo)準(zhǔn)體重的差值在 其體重的正負(fù) 5%之間,顯示“體重正常”,其他則顯示“體重超標(biāo)”或者“體重不達(dá)標(biāo)”。編寫(xiě)程序,能處理用戶輸入的異常并且使用自定義異常類來(lái)處理身高小于 30cm、大于 250cm 的異常情況。

class HighErrorException(Exception):
? ? def __init__(self,error_reason='異常,身高不能小于30cm或者大于250cm'):#自定義異常類,判斷身高是否異常
? ? ? ? Exception.__init__(self,error_reason)#定義的繼承自Exception的類HighErrorException
class relation:
? ? def __init__(self,high,weight):
? ? ? ? self.high=high
? ? ? ? self.weight=weight
? ? ? ? if self.high<30 or self.high>250:
? ? ? ? ? ? raise HighErrorException#當(dāng)遇到自己設(shè)定的錯(cuò)誤時(shí),使用raise語(yǔ)句拋出自定義的異常
? ? def rel(self):
? ? ? ? y=self.weight-(self.high-100)
? ? ? ? if abs(y) <= self.weight*0.05 :
? ? ? ? ? ? print("體重正常")
? ? ? ? elif y > self.weight*0.05 :
? ? ? ? ? ? print("體重超標(biāo)")
? ? ? ? elif y < -self.weight*0.05:
? ? ? ? ? ? print("體重不達(dá)標(biāo)")
?
try:
? ? h=eval(input("請(qǐng)輸入身高(cm):"))
? ? w=eval(input("請(qǐng)輸入體重(kg):"))
? ? f=relation(h,w)
? ? f.rel()
except HighErrorException as reason:
? ? print(reason)
else: ? ? ? ? ? ?#可選項(xiàng),必須try-except語(yǔ)句為前提
? ? print("程序正常運(yùn)行,沒(méi)有捕捉到異常")

 6.設(shè)計(jì)一個(gè)一元二次方程類,并為這個(gè)類添加異常處理。

import math
class FunctionErrorException(Exception):
? ? def __init__(self,error_reason='判別式<0,函數(shù)不存在實(shí)根'):
? ? ? ? Exception.__init__(self,error_reason)
class Equation:
? ? def __init__(self,a,b,c):
? ? ? ? self.a = a
? ? ? ? self.b = b
? ? ? ? self.c = c
? ? def getDiscriminant1(self): ?#判別式
? ? ? ? d=(self.b)**2 -(4*self.a*self.c)
? ? ? ? return d
? ? def getRoot1(self):
? ? ? ? if self.getDiscriminant1()>=0:
? ? ? ? ? ? x1=(-self.b+math.sqrt(self.getDiscriminant1()))/2*self.a
? ? ? ? ? ? return x1
? ? ? ? else:
? ? ? ? ? ? raise FunctionErrorException
? ? def getRoot2(self):
? ? ? ? if self.getDiscriminant1()>=0:
? ? ? ? ? ? x2=(-self.b+math.sqrt(self.getDiscriminant1()))/2*self.a
? ? ? ? ? ? return x2
? ? ? ? else:
? ? ? ? ? ? raise FunctionErrorException
? ??
try:
? ? a=eval(input("請(qǐng)輸入系數(shù)a:"))
? ? b=eval(input("請(qǐng)輸入系數(shù)b:"))
? ? c=eval(input("請(qǐng)輸入系數(shù)c:"))
? ? f=Equation(a,b,c)
? ? print("判別式:",f.getDiscriminant1())
? ? print(" ? x1:",f.getRoot1())
? ? print(" ? x2:",f.getRoot2())
except FunctionErrorException as reason:
? ? print(reason)
else: ? ? ? ? #可選項(xiàng),必須try-except語(yǔ)句為前提
? ? print("程序正常運(yùn)行,沒(méi)有捕捉到異常")

到此這篇關(guān)于 Python錯(cuò)誤與異常處理的文章就介紹到這了,更多相關(guān) Python錯(cuò)誤與異常處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • django之導(dǎo)入并執(zhí)行自定義的函數(shù)模塊圖解

    django之導(dǎo)入并執(zhí)行自定義的函數(shù)模塊圖解

    這篇文章主要介紹了django之導(dǎo)入并執(zhí)行自定義的函數(shù)模塊圖解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • Python?操作Excel-openpyxl模塊用法實(shí)例

    Python?操作Excel-openpyxl模塊用法實(shí)例

    openpyxl 模塊是一個(gè)讀寫(xiě) Excel 2010 文檔的 Python 庫(kù),如果要處理更早格式的 Excel 文 檔,需要用到額外的庫(kù),openpyxl 是一個(gè)比較綜合的工具,能夠同時(shí)讀取和修改 Excel 文檔,這篇文章主要介紹了Python?操作Excel-openpyxl模塊使用,需要的朋友可以參考下
    2023-05-05
  • python+pyqt實(shí)現(xiàn)右下角彈出框

    python+pyqt實(shí)現(xiàn)右下角彈出框

    這篇文章主要為大家詳細(xì)介紹了python+pyqt實(shí)現(xiàn)右下角彈出框,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • python實(shí)現(xiàn)自冪數(shù)的示例代碼

    python實(shí)現(xiàn)自冪數(shù)的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)自冪數(shù)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python中Unittest框架的具體使用

    Python中Unittest框架的具體使用

    這篇文章主要介紹了Python中Unittest框架的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 不要用強(qiáng)制方法殺掉python線程

    不要用強(qiáng)制方法殺掉python線程

    本文給大家分享的是走著的一些強(qiáng)制殺掉python線程經(jīng)驗(yàn)教訓(xùn),如果你使用強(qiáng)制手段干掉線程,那么很大幾率出現(xiàn)意想不到的bug。 請(qǐng)記住一點(diǎn),鎖資源不會(huì)因?yàn)榫€程退出而釋放鎖資源 !
    2017-02-02
  • 對(duì)python 操作solr索引數(shù)據(jù)的實(shí)例詳解

    對(duì)python 操作solr索引數(shù)據(jù)的實(shí)例詳解

    今天小編就為大家分享一篇對(duì)python 操作solr索引數(shù)據(jù)的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • PyTorch中torch.cuda.amp相關(guān)警告的解決方法

    PyTorch中torch.cuda.amp相關(guān)警告的解決方法

    在最近的寫(xiě)代碼過(guò)程中,遇到了兩個(gè)與 PyTorch 的混合精度訓(xùn)練相關(guān)的警告信息,torch.cuda.amp.autocast和torch.cuda.amp.GradScaler,文中通過(guò)代碼示例給大家介紹了詳細(xì)的解決方法,需要的朋友可以參考下
    2025-02-02
  • Python中的遞歸函數(shù)使用詳解

    Python中的遞歸函數(shù)使用詳解

    這篇文章主要介紹了Python中的遞歸函數(shù)使用詳解,遞歸函數(shù)是指某個(gè)函數(shù)調(diào)用自己或者調(diào)用其他函數(shù)后再次調(diào)用自己,由于不能無(wú)限嵌套調(diào)用,所以某個(gè)遞歸函數(shù)一定存在至少兩個(gè)分支,一個(gè)是退出嵌套,不再直接或者間接調(diào)用自己;另外一個(gè)則是繼續(xù)嵌套,需要的朋友可以參考下
    2023-12-12
  • Anaconda環(huán)境中conda與pip命令的區(qū)別小結(jié)

    Anaconda環(huán)境中conda與pip命令的區(qū)別小結(jié)

    本文主要介紹了Anaconda環(huán)境中conda與pip命令的區(qū)別小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05

最新評(píng)論