Python错误与异常处理

 更新时间:2022年01月20日 08:50:23   作者:战士小小白   
这篇文章主要介绍了 Python错误与异常处理,错误与异常处理在Python中具有非常重要的地位,熟练的使用错误与异常处理能够为我们的Python编程提供很多的便利之处,希望您阅读完本文后能够有所收获

1. 从键盘输入一个整数,求 100 除以它的商,并显示输出。要求对从键盘输入的数值进行异常处理。

try:
    n=int(input("请输入一个整数:"))
    x=100/n
    print(x)
except ValueError:
    print("异常,请重新输入:")
else:         #可选项,必须try-except语句为前提
    print("程序正常运行,没有捕捉到异常")

2.编程实现索引超出范围异常 Index Error 类型。例如:chars=["a","b",100,-37,2]

try:
    chars=["a","b",100,-37,2]
    chars[5]="k"             #产生该类型异常
except IndexError:
    print("异常,索引超出范围")
else:         #可选项,必须try-except语句为前提
    print("程序正常运行,没有捕捉到异常")

  3.录入一个学生的成绩,把该学生的成绩转换为 A 优秀、B 良好、C 合格、D 不及格的形式,最后将该学生的成绩打印出来。要求使用 assert 断言处理分数不合理的情况。

try:
    score=int(input('请输入学生的成绩:'))
    assert 0<=score<=100  #断言 成绩必须在0-100范围内
    if score >= 90:
        print("A优秀")
    if score >= 80 and score < 90:
        print("B良好")
    if score >=60 and score <80:
        print("C合格")
    if score <60:
        print("D不及格")
except ValueError:
    print("异常,输入必须为整数")
except AssertionError:  #断言异常信息
    print("异常,输入的成绩{}不在0-100范围内".format(score))
else:         #可选项,必须try-except语句为前提
    print("程序正常运行,没有捕捉到异常")

 4. 定义一个 Circle 类,其中有求面积的方法,当半径小于 0 时, 抛出一个用户自定义异常

import math
class RangeErrorException(Exception):#自定义异常类,判断半径范围是否异常
    def __init__(self, error_reason='异常,圆的半径不能为负数!'):
        Exception.__init__(self, error_reason)#定义的继承自Exception的类RangeErrorException
class Circle():
    def __init__(self,r):
        self.r=r
        if self.r < 0:#当遇到自己设定的错误时,使用raise语句抛出自定义的异常
            raise RangeErrorException
    def getS(self):   #计算获取圆的面积
        area = math.pi *self.r *self.r
        return area
try:
    r=eval(input("请输入半径r:"))
    c=Circle(r)
    print("面积为:{:.2f}".format(c.getS()))
except RangeErrorException as reason:
    print(reason)
else:         #可选项,必须try-except语句为前提
    print("程序正常运行,没有捕捉到异常")

 5. 假设成年人的体重和身高存在此种关系:  身高(厘米)-100=标准体重(千克)   如果一个人的体重与其标准体重的差值在 其体重的正负 5%之间,显示“体重正常”,其他则显示“体重超标”或者“体重不达标”。编写程序,能处理用户输入的异常并且使用自定义异常类来处理身高小于 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#当遇到自己设定的错误时,使用raise语句抛出自定义的异常
    def rel(self):
        y=self.weight-(self.high-100)
        if abs(y) <= self.weight*0.05 :
            print("体重正常")
        elif y > self.weight*0.05 :
            print("体重超标")
        elif y < -self.weight*0.05:
            print("体重不达标")
 
try:
    h=eval(input("请输入身高(cm):"))
    w=eval(input("请输入体重(kg):"))
    f=relation(h,w)
    f.rel()
except HighErrorException as reason:
    print(reason)
else:            #可选项,必须try-except语句为前提
    print("程序正常运行,没有捕捉到异常")

 6.设计一个一元二次方程类,并为这个类添加异常处理。

import math
class FunctionErrorException(Exception):
    def __init__(self,error_reason='判别式<0,函数不存在实根'):
        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("请输入系数a:"))
    b=eval(input("请输入系数b:"))
    c=eval(input("请输入系数c:"))
    f=Equation(a,b,c)
    print("判别式:",f.getDiscriminant1())
    print("   x1:",f.getRoot1())
    print("   x2:",f.getRoot2())
except FunctionErrorException as reason:
    print(reason)
else:         #可选项,必须try-except语句为前提
    print("程序正常运行,没有捕捉到异常")

到此这篇关于 Python错误与异常处理的文章就介绍到这了,更多相关 Python错误与异常处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python的进程间通信详解

    Python的进程间通信详解

    大家好,本篇文章主要讲的是Python的进程间通信详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • JupyterLab远程密码访问实现

    JupyterLab远程密码访问实现

    本文主要介绍了JupyterLab远程密码访问实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python Flask的request对象使用详解

    Python Flask的request对象使用详解

    本文介绍Flask request对象,一个完整的HTTP请求,包括客户端向服务端发送的Request请求和服务器端发送Response响应.为了能方便访问获取请求及响应报文信息,Flask框架提供了一些内建对象,下面就来说一下Flask针对请求提供内建对象reques,需要的朋友可以参考一下
    2023-02-02
  • Python中range()与np.arange()的具体使用

    Python中range()与np.arange()的具体使用

    本文主要介绍了Python中range()与np.arange()的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Python 概率生成问题案例详解

    Python 概率生成问题案例详解

    这篇文章主要介绍了Python 概率生成问题案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • 基于PyQt5制作Excel数据分组汇总器

    基于PyQt5制作Excel数据分组汇总器

    这篇文章主要介绍了基于PyQt5制作的一个小工具:Excel数据分组汇总器。文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起试一试
    2022-01-01
  • Python Django获取URL中的数据详解

    Python Django获取URL中的数据详解

    这篇文章主要介绍了Python Django获取URL中的数据详解,小编觉得挺不错的,这里分享给大家,供需要的朋友参考
    2021-11-11
  • Python下使用Scrapy爬取网页内容的实例

    Python下使用Scrapy爬取网页内容的实例

    今天小编就为大家分享一篇Python下使用Scrapy爬取网页内容的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python图形用户界面与游戏开发实例详解

    Python图形用户界面与游戏开发实例详解

    GUI是图形用户界面的缩写,图形化的用户界面对使用过计算机的人来说应该都不陌生,下面这篇文章主要给大家介绍了关于Python图形用户界面与游戏开发的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • Python的Bottle框架的一些使用技巧介绍

    Python的Bottle框架的一些使用技巧介绍

    这篇文章主要介绍了Python的Bottle框架的一些使用技巧,文中用代码举例介绍了这些技巧用到的特性,需要的朋友可以参考下
    2015-04-04

最新评论