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错误

图如下:
图片说明

我该怎么弄?

回答

看看count是否为0,因为代码只有 print("{}个数字的和为{},平均数为{}".format(count,sum,sum/count)) 这一行有除法

你在前面 try 没什么意义。

以上是 ZeroDivisionError 异常捕捉失败 的全部内容, 来源链接: utcz.com/a/42065.html

回到顶部