传递ZeroDivisionError

时间:2017-07-13 14:23:52

标签: python excel python-2.7 python-3.x exception

我正在尝试为报表执行销售价格到成本计算。我得到的数据是进入Excel表格传递。该脚本已经运行了数周,但最近开始失败。它在将数据写入我的Excel工作表的一行中失败,该工作表收集两条信息并计算它以获得我的保证金。问题是我的成本不低于我的销售价格(卖亏)并导致我的脚本失败。如何让我的脚本不仅通过,而且正确记录方程式?

ws.cell(row=x, column=y, value=(s.SalePrice - s.Cost) / s.SalePrice)

我为Excel工作表导入了pyxl和xlrd。

1 个答案:

答案 0 :(得分:0)

只要s.SalePrice为0,就会出现错误。

您可以将表达式包装在try/except块中以适当地捕获并处理该错误:

try:
    val = (s.SalePrice - s.Cost) / s.SalePrice 
except ZeroDivisionError:
    val = 'N/A'

ws.cell(row=x, column=y, value=val)

N/A替换为您s.SalePrice为0时要显示的任何相应消息。