我對 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=-100else: delta__percentage=(delta*100)/mcs正如錯誤所說,我認為這是因為 python 試圖進行整數除法float(delta*100)/float(mcs)并將mcs 舍入為 0,但我也嘗試過這也無濟于事。有什么建議 ??
2 回答

qq_笑_17
TA貢獻1818條經驗 獲得超7個贊
嘗試使用==代替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測試和精確對象身份測試。

牧羊人nacy
TA貢獻1862條經驗 獲得超7個贊
您正在使用is
的時候,你應該使用==
。
is
檢查相同的實例。這個東西和另一個東西是一樣的嗎
==
檢查相同或不同實例的相等性。0 等于 0.0 嗎?
我敢打賭,您正在檢查 0 是否為 0.0,但事實并非如此。然后,當您除以 0.0 時,您會得到錯誤。
添加回答
舉報
0/150
提交
取消