ZeroDivisionError:即使我有一个零捕手浮点除以零

时间:2018-11-30 19:41:50

标签: python floating integer-division divide-by-zero

我是Python的新手。我在下面附上了一段代码。 constant_a&b是整数。运行此代码时,出现以下错误:

  

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

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),但也没有帮助。有什么建议吗?

2 个答案:

答案 0 :(得分:6)

尝试使用==代替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'

有关更多说明,请参见this post。本质上,==测试是否相等,is测试确切的对象身份。

答案 1 :(得分:1)

您应该在使用is时使用==

is检查相同的实例。这是事物与这其他事物

一样吗

==检查相同或不同实例的相等性。是0等于0.0吗?

我敢打赌,您正在检查是否为0 IS 0.0,不是。然后,当您将其除以0.0时,就会得到错误。