Python 修改程序,零错误

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)

我修改了一个程序,允许四舍五入到2dps,但尽管已经成功地消除了它,但“ZeroDivisionError:float division”已经返回。使用最优雅的方法,我需要做哪些修改来避免错误

是:

是:


发生这种情况的原因似乎是
比率
赋值(划分
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