运行Python除法代码触发ZeroDivisionError: division by zero报错咨询
报错核心原因
本次触发的是Python内置的ZeroDivisionError异常,触发逻辑为:
- 数学规则层面,除以0不存在合法运算结果,Python解释器在执行除法运算时,会对除数的取值做强制校验
- 对应触发位置的代码为
print(c/0),该语句硬编码将除数写为0,无论变量c取何值,只要除数为0,解释器就会直接中断运算并抛出报错,和c=87的变量取值没有关联。代码中前两个print语句不存在运行时问题,可正常输出结果。
解决方案
- 修正除法语句中的非法除数:将硬编码的0替换为实际需要参与运算的非零值,即可正常得到除法运算结果。
- 若除数为动态传入的变量值,建议在执行除法前增加前置校验:判断除数是否为0,遇到0值时输出友好提示,避免程序直接崩溃报错。
可直接运行的修正代码示例
a = 1 b = "2" c = 87 print(int(7.5)) print(str(a) + b) # 替换原硬编码的0为合法除数 print(c / 2)
带前置校验的鲁棒性写法参考:
a = 1 b = "2" c = 87 divisor = 2 # 此处可替换为任意动态传入的除数 print(int(7.5)) print(str(a) + b) if divisor == 0: print("非法运算:除数不能为0") else: print(c / divisor)
内容的提问来源于stack exchange,提问作者Parm Inder Patial
相关产品推荐
相关产品推荐

