2016-05-05 10 views
-1

Ich schreibe ein Programm, das ganzzahlige Werte aus einer Eingabedatei liest, die Zahlen teilt und dann Prozentsätze in eine Ausgabedatei schreibt. Einige der Werte, dass mein Programm Null sein kann, und eine 0/0 oder 4/0 Gelegenheit heraufbringen.Nullteilungsfehler ignorieren

Von hier bekomme ich einen Zerodivisionerror, gibt es eine Möglichkeit, diesen Fehler zu ignorieren, so dass es einfach 0% druckt ??

Danke.

+0

Willkommen bei SO, bitte überprüfen Sie diese [URL] (http://stackoverflow.com/help) es wird Ihnen helfen, Ihre Content-Qualität zu erhöhen. –

Antwort

2

Die einfachste Möglichkeit ist, zu überprüfen, ob Divisor 0 ist, und wenn das der Fall ist, die Abteilung überspringt und verwendet nur 0 als Ergebnis:

n = [(1, 3), (5, 2), (0, 0), (3, 3), (4, 0)] 
res = [x/float(y) if y else 0 for x, y in n] # [0.3333333333333333, 2.5, 0, 1.0, 0] 

Andere Option ist ZeroDivisionError mit try/except zu fangen:

res = [] 
for x, y in n: 
    try: 
     res.append(x/float(y)) 
    except ZeroDivisionError: 
     res.append(0)