我已经修改了一个允许舍入到2dps的程序,但是尽管已经成功地消除了它,但是“ZeroDivisionError:float division”已经返回。使用最优雅的方法,我需要做哪些修改来避免错误?你知道吗
曾经是:
for line in data:
split=line.split()
ptot=0
ntot=0
for pchar in "HKR":
pchartotal=split[1].count(pchar)
ptot+=pchartotal
for nchar in "DE":
nchartotal=split[1].count(nchar)
ntot+=nchartotal
try:
print float(ptot)/float(ntot)
except ZeroDivisionError:
print ptot
是:
for line in data:
split=line.split()
ptot=0
ntot=0
for pchar in "HKR":
pchartotal=split[1].count(pchar)
ptot+=pchartotal
for nchar in "DE":
nchartotal=split[1].count(nchar)
ntot+=nchartotal
ratio=float(ptot)/float(ntot)
try:
print "%.2f" % ratio
except ZeroDivisionError:
print ptot
发生这种情况的原因似乎是
ratio
赋值(除以ptot
和ntot
)不包含在try/except
块中。在try
块中没有进行任何除法-为什么ZeroDivisionError
会被捕获?你知道吗如果要将其更改为:
这应该可以弥补你的错误。你知道吗
相关问题 更多 >
编程相关推荐