我是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)
,但也没有帮助。有什么建议吗?
答案 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时,就会得到错误。