2016-05-05 3 views
-1

Я пишу программу, которая считывает целочисленные значения из входного файла, делит числа, а затем записывает проценты в выходной файл. Некоторые из значений, которые моя программа может быть равна нулю, и вызывают 0/0 или 4/0 раз.Игнорирование ошибки деления

Отсюда я получаю Zerodivisionerror, есть ли способ игнорировать эту ошибку, чтобы она просто печатала 0% ??

Спасибо.

+0

Добро пожаловать в SO, пожалуйста, проверьте это [URL] (http://stackoverflow.com/help), это поможет вам повысить качество контента. –

ответ

2

Самый простой вариант, чтобы проверить, если делитель 0 и если это так, пропустить деление и использовать только 0 как результат:

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] 

Другой вариант поймать ZeroDivisionError с try/except:

res = [] 
for x, y in n: 
    try: 
     res.append(x/float(y)) 
    except ZeroDivisionError: 
     res.append(0) 
Смежные вопросы