p3pinot 2020-09-04 10:54 采纳率: 100%
浏览 163
已采纳

ZeroDivisionError 异常捕捉失败

我在我的代码上面已经设置了ZeroDivisionError的捕捉
但是程序运行的时候依旧提示ZeroDivisionError的异常
我的代码如下

#加入(异常捕捉)后的(哨兵循环)语句改进用户可进行交互式的平均数的计算程序
def main():
    try:
        sum = 0.0
        count = 0
        num = eval(input("请输入你想要进行的平均数计算的数字(哨兵为-1):"))
        while num != -1:
            count = count + 1
            sum = sum + num
            num = eval(input("请输入你想要进行的平均数计算的数字(哨兵为-1):"))
#    except ZeroDivisionError as excObj:
 #       if str(excObj) == "float division by zero":
  #          print("错误类型:ZeroDivisionError")
   #         print("指引:一开始的数字哨兵值,这将导致0除0的情况出现")
    except TypeError:
        print("错误类型:TypeError")
        print("指引:加入了不该加入的字符")
    except SyntaxError:
        print("错误类型:SyntaxError")
        print("请输入数字,这是个无效的表达式")
    except NameError:
        print("错误类型:NameError")
        print("请输入数字")
    except ZeroDivisionError:
        print("test")
    else:
        print("程序运行正常")
        print("平均数已被计算出")
        print("{}个数字的和为{},平均数为{}".format(count,sum,sum/count))
main()

输入-1后运行,按照我自己的想法,应该会打印出test字符串才对
但是它依旧提示了ZeroDivisionError错误
图如下:
图片说明
我该怎么弄?

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-09-04 12:10
    关注

    看看count是否为0,因为代码只有 print("{}个数字的和为{},平均数为{}".format(count,sum,sum/count)) 这一行有除法
    你在前面 try 没什么意义。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题