Я пытаюсь выполнить расчет продажной цены и стоимости для отчета. Данные, которые я получаю, помещаются в таблицу Excel для передачи. Сценарий работал нормально в течение нескольких недель, но недавно начал давать сбой. Он терпит неудачу в строке, которая записывает данные в мой лист Excel, который берет две части информации и вычисляет их, чтобы получить мою маржу. Проблема в том, что моя стоимость не ниже, чем моя продажная цена (продажа с убытком), и это приводит к сбою моего скрипта. Как я могу заставить мой сценарий не только пройти, но и правильно записать уравнение?

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

Я импортировал pyxl и xlrd для своих листов Excel.

-1
TheFarmGuy 13 Июл 2017 в 17:23
Если s.SalePrice равно 0, вы получите указанную ошибку ...
 – 
Jean-François Fabre
13 Июл 2017 в 17:25

1 ответ

Лучший ответ

Ошибка возникает всякий раз, когда 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.

0
cs95 13 Июл 2017 в 17:30
Привет, спасибо за быстрый ответ! Я попробую и вернусь к вам.
 – 
TheFarmGuy
13 Июл 2017 в 17:41