Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 负温度回路_Python_Loops - Fatal编程技术网

Python 负温度回路

Python 负温度回路,python,loops,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

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

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

我的意思是,在range()中,如果你想让它变成负数-10,那么你必须使用:

range(maxTemp,-11,-5)
所以


我希望这能回答您的问题

听起来您通常希望循环从最大值向下迭代到零,但如果最大值为负,则您希望从零向下循环到最大值(在这种情况下,这实际上是最小值)。您当前的代码不能做到这一点。它总是从最大值循环到零。如果最大值为负数,则范围为空且根本不循环

您可以通过显式测试负最大值并在循环外部创建
范围来解决此问题:

if maxTemp > 0:
    temp_range = range(maxTemp, 0, -5)
else:
    temp_range = range(0, maxTemp, -5)

for cels in temp_range:
    ...

注意,你可能要考虑改变正范围的范围为<代码>反转(范围(0,Max TEMP,5))< /代码>,因为这会使正负范围更加对称(它们不会总是包含最大值,只有5的倍数)。

< P> CEL=0。 而(cel>maxTemp):


我真的不明白你想做什么。
maxTemp
的值是多少?为什么要将其值分配给cels,然后在
for循环中使用cels
?这应该是可行的,但这些是最糟糕的变量名。你真的在用
calcC
计算华氏度吗?
if maxTemp > 0:
    temp_range = range(maxTemp, 0, -5)
else:
    temp_range = range(0, maxTemp, -5)

for cels in temp_range:
    ...
            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))