python - 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)
了这也没有帮助。有什么建议么 ??
解决方案
尝试使用==
而不是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
测试精确对象身份。
推荐阅读
- spring - 为什么 Spring 的 PathMatchingResourcePatternResolver 没有匹配“*”?
- angular - 如何在 Ionic App 上停止自动下载和保存图片和视频
- cmake - 将 gsl 作为 3rd 方动态库与使用 CPack 生成的 Debian 包一起提供
- graph - 如何在 Neo4j 图形数据库上使用 Cypher 解决最常见的路径类问题
- javascript - 表单中的 Javascript 变量
- reactjs - Material UI:带有可扩展侧边菜单的抽屉
- javascript - 使用 Vue.JS 和 Node.JS 时未定义 Axios 授权标头
- android - Android 上的 Firebase 正在使用哪些 URL
- slack - WebClient files.upload 失败,无法读取未定义的属性“名称”
- javonet - javanet 是否支持 java 9、10 和 11