次のような python コードがあります。
import sys
import fileinput, string
K = 3
f = raw_input("please input the initial "+str(K)+" lamba: ").split()
Z = []
sumoflamba = 0.0
for m in f:
j = m.find("/")
if j!=-1:
e=float(m[:j])/float(m[j+1:])
else:
e = float(m)
sumoflamba+=e
if e==0:
print "the initial lamba cannot be zero!"
sys.exit()
Z.append(e)
print sumoflamba
if sumoflamba!=1:
print "initial lamba must be summed to 1!"
sys.exit()
0.7、0.2、0.1で実行すると。警告を出力して終了します。ただし、0.1、0.2、0.7 で実行すると。それは正常に動作します。0.3、0.3、0.4 でも問題なく動作します。手がかりがありません....誰かがこれを説明できますか?「print sumoflamda」は、これらすべてのケースで 1.0 を返します。