метод предотвращения «деления на нулевую ошибку»

я запускаю это:

      for dataset in waycategory_values:
        if dataset['value'] in [1.0, 2.0, 3.0]: 
            total_highway_distance += dataset['distance']

    for dataset in waycategory_values:
        total_distance += dataset['distance']

    highway_perc = (total_highway_distance / total_distance)

    print(highway_perc)

Возможно, что total_distance равно нулю. Есть ли простой способ продолжить работу скрипта и просто вывести 0, когда общее расстояние равно 0. Я думал о добавлении +1 к total_distance каждый раз, но разве нет лучшего способа?

на мой взгляд, ниже циркулирует, но это не работает:

      if total_distance == 0:
    total_distance = 1

1 ответ

Решение

Это «не работает», потому что код, который вы написали, не использует логику, которую вы утверждаете. То, что вы описали словами, выглядит так:

      # print 0 when the total distance is 0

if total_distance == 0:
    highway_perc = 0
else:
    highway_perc = total_highway_distance / total_distance

print(highway_perc)

Вы также можете сделать это в одной строке:

      highway_perc = 0 if total_distance == 0 else total_highway_distance / total_distance
Другие вопросы по тегам