метод предотвращения «деления на нулевую ошибку»
я запускаю это:
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