Проблема очевидна, если вы распечатаете значения part
и whole
, которые вызвали эту ошибку.
Решение состоит в том, чтобы обрабатывать любые ошибки деления на ноль, например
try:
result = percentage(sum(list), total)
except ZeroDivisionError:
# Handle the error in whatever way makes sense for your application
Кроме того, вы можете проверить на ноль, прежде чем делить
def percentage(part,whole):
if whole == 0:
if part == 0:
return float("nan")
return float("inf")
return float(part) / float(whole) *100
(Спасибо Джорану Бизли и Максу за то, что они сделали это математически правильным)