我试图用用户输入创建温度转换器,并将其从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
以此类推。
我的代码仅显示一个结果,而不显示循环。最后两行代码。
答案 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))