python 异常处理

常见的异常类型:

ZeoDivisionError  除数为0的错误

IOError 输入输出错误 eg:读取的文件不存在时

ValueError  传入的值错误

IndexError 索引超出序列范围

KeyError  请求的字典的关键字不存在

NameError  访问一个没有声明的变量

IndentationError  缩进错误

ImportError   import语句无法找到模块或在from无法在模块中找到相应的名称

TypeError  类型不合适

AttributeError  访问未知的对象属性

MemoryError  内存不足

异常处理语句:

1、try.....except 

"""
语法 :

try:
   block1   可能有问题的代码块
except exceptionNamme1 [as alias]  指定要捕获的异常
   block2    进行处理的结果
except exceptionNamme1 [as alias]  指定要捕获的异常
   block3    进行处理的结果
   ......
"""

while True :
    def division():
        print("\n==========分苹果==========")
        apple = int(input("请输入苹果的数目:"))
        childern = int(input("请输入小朋友的数目:"))
        result = apple // childern
        remain = apple - result * childern
        if remain > 0:
            print(apple,"个苹果,分给",childern,"个小朋友","每人分",result,"个","剩 
                   下",remain,"个")

        else:
            print(apple, "个苹果,分给", childern, "个小朋友", "每人分", result, "个" )
    if __name__ == "__main__":
        try:
            division()
        except ZeroDivisionError:
            print("\n出错了~_~,—个苹果不能分给0个小朋友")
        except  ValueError as e:
            print("输入错误",e)
        

2、try......except......else语句

def division():
    print("\n==========分苹果==========")
    apple = int(input("请输入苹果的数目:"))
    childern = int(input("请输入小朋友的数目:"))
    result = apple // childern
    remain = apple - result * childern
    if remain > 0:
        print(apple, "个苹果,分给", childern, "个小朋友", "每人分", result, "个", "剩下", remain, "个")

    else:
        print(apple, "个苹果,分给", childern, "个小朋友", "每人分", result, "个")


if __name__ == "__main__":
    try:
        division()
    except ZeroDivisionError:
        print("\n出错了~_~,—个苹果不能分给0个小朋友")
    except  ValueError as e:
        print("输入错误", e)
        print("请重新输入:")
    else:  # 当try 语句块中没有异常时执行的语句
        print("分苹果顺利完成")

3、try......except......finally语句

"""
try:
   black1
except ExceptionName [as alias]
   black2
......
finally:
    black3    在任何情况下都会执行的代码放在finally中
"""


def division():
    print("\n==========分苹果==========")
    apple = int(input("请输入苹果的数目:"))
    childern = int(input("请输入小朋友的数目:"))
    result = apple // childern
    remain = apple - result * childern
    if remain > 0:
        print(apple, "个苹果,分给", childern, "个小朋友", "每人分", result, "个", "剩下", remain, "个")

    else:
        print(apple, "个苹果,分给", childern, "个小朋友", "每人分", result, "个")
if __name__ == "__main__":
    try:
        division()
    except ZeroDivisionError:
        print("\n出错了~_~,—个苹果不能分给0个小朋友")
    except  ValueError as e:
        print("输入错误", e)
        print("请重新输入:")
    finally:         #  在任何情况下都会执行的代码放在finally中
        print("进行了一次分苹果")

4、raise 语句抛出异常

"""
如果某个在某个方法中可能存在异常,但又不想当前处理,则可用raise 在函数或方法中抛出异常

语法 :
 raise [ExceptionName[(reason)]]
 ExceptionName[(reason)]为可选参数,用于指定抛出的异常名称以及异常信息的相关描述,如果省略,则当前错误会原样输出
"""

def division():
    print("\n==========分苹果==========")
    apple = int(input("请输入苹果的数目:"))
    childern = int(input("请输入小朋友的数目:"))
    if apple < childern:
        raise ValueError("苹果太少了!!!")
    result = apple // childern
    remain = apple - result * childern
    if remain > 0:
        print(apple, "个苹果,分给", childern, "个小朋友", "每人分", result, "个", "剩下", remain, "个")

    else:
        print(apple, "个苹果,分给", childern, "个小朋友", "每人分", result, "个")


if __name__ == "__main__":
    try:
        division()
    except ZeroDivisionError:
        print("\n出错了~_~,—个苹果不能分给0个小朋友")
    except  ValueError as e:
        print("输入错误", e)
    finally:  # 在任何情况下都会执行的代码放在finally中
        print("进行了一次分苹果")

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕.晨风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值