Python 修改程序,零错误
我修改了一个程序,允许四舍五入到2dps,但尽管已经成功地消除了它,但“ZeroDivisionError:float division”已经返回。使用最优雅的方法,我需要做哪些修改来避免错误 是: 是:Python 修改程序,零错误,python,divide-by-zero,Python,Divide By Zero,我修改了一个程序,允许四舍五入到2dps,但尽管已经成功地消除了它,但“ZeroDivisionError:float division”已经返回。使用最优雅的方法,我需要做哪些修改来避免错误 是: 是: 发生这种情况的原因似乎是比率赋值(划分ptot和ntot)不包含在try/except块中。您没有在try块中执行任何除法-为什么会捕获zerodivision错误 如果要将其更改为: ratio = 0 try: ratio = float(ptot) / float(ntot)
发生这种情况的原因似乎是
比率
赋值(划分ptot
和ntot
)不包含在try/except
块中。您没有在try
块中执行任何除法-为什么会捕获zerodivision错误
如果要将其更改为:
ratio = 0
try:
ratio = float(ptot) / float(ntot)
print "%.2f" % ratio
except ZeroDivisionError:
print ptot
这应该可以纠正您的错误。您在
打印%.2f”%ratio
中缺少一个“
,这是一个复制错误,我的错。问题依然存在。
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 = 0
try:
ratio = float(ptot) / float(ntot)
print "%.2f" % ratio
except ZeroDivisionError:
print ptot