2017-07-13 3 views
-1

Ich versuche, Verkaufspreis zu Kostenberechnungen für einen Bericht durchzuführen. Die Daten, die ich bekomme, gehen in eine Excel-Tabelle, die ich weitergeben kann. Das Skript hat wochenlang funktioniert, aber vor kurzem angefangen zu versagen. Es scheitert an einer Zeile, die Daten in meine Excel-Tabelle schreibt, die zwei Teile von Informationen benötigt und sie berechnet, um meine Marge zu erhalten. Das Problem ist, dass meine Kosten nicht niedriger als mein Verkaufspreis sind (Verkauf für einen Verlust) und dazu führen, dass mein Skript fehlschlägt. Wie kann ich mein Skript nicht nur übergeben, sondern die Gleichung korrekt aufzeichnen?Übergabe eines ZeroDivisionError

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

Ich habe importiert pyxl und xlrd für meine Excel-Sheets.

+0

wenn 's.SalePrice' ist 0 dann erhalten Sie den Fehler, den Sie erwähnen ... –

Antwort

0

Der Fehler, den Sie erhalten, tritt auf, wenn s.SalePrice ist 0.

Sie Ihren Ausdruck in einem try/except Block wickeln kann entsprechend diesen Fehler abfangen und behandeln:

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

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

N/A Ersetzen mit jeder geeigneten Nachricht, die Sie‘ d möchte im Fall, dass s.SalePrice 0 ist.

+0

Hey danke für schnelle res ponse! Ich werde es versuchen und zurück zu dir kommen. – TheFarmGuy

+0

Sicher! Wenn es funktioniert, denke darüber nach, es zu akzeptieren! Vielen Dank. –

Verwandte Themen