负温度回路

时间:2018-10-18 03:51:26

标签: python loops

我试图用用户输入创建温度转换器,并将其从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

以此类推。

我的代码仅显示一个结果,而不显示循环。最后两行代码。

3 个答案:

答案 0 :(得分:0)

我的意思是,在range()中,如果您希望它变为负-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))

我希望这能回答您的问题

答案 1 :(得分:0)

听起来好像您通常希望循环从最大值向下循环到零,但是如果最大值为负,则想从零循环到最大值(在这种情况下,实际上是最小值) )。您当前的代码无法执行此操作。它总是从最大值循环到零。如果最大值为负数,则范围为空,并且根本不会循环。

您可以通过显式测试负最大值并在循环外创建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的倍数) )。

答案 2 :(得分:0)

cel = 0             而(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))