首页 > 解决方案 > ZeroDivisionError:即使我有一个零捕手,也可以将除以零

问题描述

我对 Python 有点陌生。我在下面附上了一段代码。constant_a & b 是整数。运行此代码时,我收到以下错误:

回溯(最后一次调用):文件“U:\V10_run2\process.py”,第 209 行,在 delta_mcs_2_gfx_percentage=(delta_mcs_2_gfx*100)/float(mcs) ZeroDivisionError: float 除以零

mcs=hash["MCF"]*constant_a/constant_b  

if mcs is 0:
      delta__percentage=-100
else:
      delta__percentage=(delta*100)/mcs

正如错误所说,我认为这是因为 python 试图进行整数除法并将 mcs 舍入为 0,但我也尝试float(delta*100)/float(mcs)了这也没有帮助。有什么建议么 ??

标签: pythonfloatinginteger-divisiondivide-by-zero

解决方案


尝试使用==而不是is

a = 0.0

if a is 0:
    print("is zero")
else:
    print("not zero")
# 'not zero'

if a == 0:
    print("== zero")
else:
    print("not zero")
# '== zero'

请参阅这篇文章以获得更多解释。本质上,==测试相等性和is测试精确对象身份。


推荐阅读