Звучит так, будто вы обычно хотите, чтобы ваш цикл повторялся от максимального значения до нуля, но если максимум отрицательный, вместо этого вы хотите выполнить цикл от нуля до максимума (который в действительности является минимальным вместо этого, в этом случае).Ваш текущий код не делает этого.Он всегда проходит от максимума до нуля.Если максимум отрицательный, диапазон пуст и он вообще не зацикливается.
Это можно исправить, явно проверив наличие отрицательного максимального значения и создав range
вне цикла:
if maxTemp > 0:
temp_range = range(maxTemp, 0, -5)
else:
temp_range = range(0, maxTemp, -5)
for cels in temp_range:
...
Обратите внимание, что вы можете рассмотреть возможность изменения диапазона для положительного диапазона на reversed(range(0, maxTemp, 5))
, так как это сделает положительные и отрицательные диапазоны более симметричными (они не всегда точно включают максимум, только кратные5).