Python while循环添加错误

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)

tim*_*geb 5

问题是while循环的进入条件是celsius < 21.因此,当celsius为20时,while将进入循环,celsius将增加到21,您的sum值将被更改,现在循环完成,因为celsius < 21False.一种解决方案是简单地检查celsius < 20.

演示正在发生的事情:

# python interpreter
>>> x = 0
>>> while x < 3:
...    x += 1
...    print(x)
... 
1
2
3
Run Code Online (Sandbox Code Playgroud)