Отрицательный температурный контур - PullRequest
0 голосов
/ 18 октября 2018

Я попытался создать преобразователь температуры с пользовательским вводом и зациклить его от 0 до пользовательской входной температуры.Я использую его для положительной температуры, но как только я положу отрицательный градус Цельсия, мой цикл не будет работать.

cels=maxTemp
for cels in range(maxTemp,0,-5):

    calcC = 9.0/5.0 * cels +32
    print("%6.2f |%10.2f" %(cels,calcC))

calcC = 9.0/5.0 * maxTemp +32
print("%6.2f | %10.2f" %(maxTemp,calcC))

Результат должен выглядеть следующим образом:

Celsius | Fah
--------------
0.00    | 32.00
-5.00   | 23.00
-10.00  | 14.00

и т. Д.

Мой код отображает только один результат, а не цикл.Последние 2 строки кода.

Ответы [ 3 ]

0 голосов
/ 18 октября 2018

Звучит так, будто вы обычно хотите, чтобы ваш цикл повторялся от максимального значения до нуля, но если максимум отрицательный, вместо этого вы хотите выполнить цикл от нуля до максимума (который в действительности является минимальным вместо этого, в этом случае).Ваш текущий код не делает этого.Он всегда проходит от максимума до нуля.Если максимум отрицательный, диапазон пуст и он вообще не зацикливается.

Это можно исправить, явно проверив наличие отрицательного максимального значения и создав 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).

0 голосов
/ 18 октября 2018

cel = 0 while (cel> maxTemp):

            calsC = 9.0/5.0 * cel +32   
            print("%7.2f |%11.2f" %(cel,calsC))
            cel += -5

    calsC = 9.0/5.0 * maxTemp +32
    print("%7.2f | %11.2f" %(maxTemp,calsC))
0 голосов
/ 18 октября 2018

Я имею в виду, в диапазоне (), если вы хотите, чтобы он стал отрицательным -10, тогда вы можете использовать:

range(maxTemp,-11,-5)

Итак

cels=maxTemp
for cels in range(maxTemp,-11,-5):

    calcC = 9.0/5.0 * cels +32

    print("%6.2f |%10.2f" %(cels,calcC))

Я надеюсь, что этоотвечает на ваш вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...