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 试图进行整数除法float(delta*100)/float(mcs)并将mcs 舍入为 0,但我也尝试过这也无济于事。有什么建议 ??


开满天机
浏览 205回答 2
2回答

qq_笑_17

尝试使用==代替is:a = 0.0if a is 0:    print("is zero")else:    print("not zero")# 'not zero'if a == 0:    print("== zero")else:    print("not zero")# '== zero'有关更多解释,请参阅此帖子。本质上,==相等性is测试和精确对象身份测试。

牧羊人nacy

您正在使用is的时候,你应该使用==。is检查相同的实例。这个东西和另一个东西是一样的吗==检查相同或不同实例的相等性。0 等于 0.0 吗?我敢打赌,您正在检查 0 是否为 0.0,但事实并非如此。然后,当您除以 0.0 时,您会得到错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python