Python 负温度回路
我尝试用用户输入创建一个温度转换器,并将其从0循环到用户输入温度。我让它为正温度工作,但一旦我把负摄氏度我的循环将无法工作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
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))