Sho*_*rsh 1 python loops while-loop
好吧所以我几天前几乎没有上课,对我来说一切都是新的.我想要做的是创造一些东西,将摄氏温度转换为华氏温度和开尔文,我已经做到了,虽然它有点草率.
无论如何我的问题是累加器.当我得到所有摄氏度的总和时,我得到231当它应该是210.它增加了21我从"摄氏度<21.
任何人都可以帮我弄清楚如何获得正确的数字:/?谢谢!
print ("Celsius Conversion Chart")
sum = 0
sum1 = 0
sum2 = 0
celsius = 0
while celsius < 21:
print (str(celsius)+'°C ' + ' = ' + str(celsius*9/5+32)+'°F ' + ' = ' + str(celsius +273.15)+'°K')
celsius += 1
sum = sum + celsius
sum1 = sum1 + (celsius * 9/5 + 32)
sum2= sum2 + (celsius + 273.15)
print (str(sum1)+'°F')
print (str(sum2)+'°K')
print (str(sum)+'°C')
if celsius < 100:
print ("WARNING: temperature is too high")
Run Code Online (Sandbox Code Playgroud)
问题是while循环的进入条件是celsius < 21.因此,当celsius为20时,while将进入循环,celsius将增加到21,您的sum值将被更改,现在循环完成,因为celsius < 21是False.一种解决方案是简单地检查celsius < 20.
演示正在发生的事情:
# python interpreter
>>> x = 0
>>> while x < 3:
... x += 1
... print(x)
...
1
2
3
Run Code Online (Sandbox Code Playgroud)