1

学习python中的循环,我正在使用的书刚刚介绍了“while”语句,为介绍编程类做问题,我需要获取用户输入的摄氏温度并将其转换为华氏温度并将转换后的总温度加在一起,在我的伪代码中这是有道理的,但是我在应用“while”语句时遇到了问题,到目前为止我有这段代码,我想知道是否有一种简单的方法来执行这种循环,但是语法不起作用申请。这是到目前为止的代码。此外,问题要求使用 -999 作为哨兵退出程序并显示您的总数(温度的华氏转换总和和转换温度的总和)

sum = 0 #start counter at zero? 

temp = raw_input('enter temp in celsius, enter -999 to exit: ') #ask user for temp  

while temp != -999: #my while statement, sentinel is -999 
    faren = 9 * temp / 5 + 32
    sum += temp #to accumulate the sum of temps? 
    total = sum + temp #for the total, does this go below? 
    print raw_input('enter temp in celcius, enter -999 to exit: ') #the loop for getting another user temp

print faren #totals would be displayed here if user enters -999 
print total 

#need to use the "break" statment? 
4

2 回答 2

6

raw_input()返回一个str对象。所以,当你通过的时候-999,它真的给了你"-999",这不等于-999。您应该使用该int()函数将其转换为整数:

temp = int(raw_input('enter temp in celsius, enter -999 to exit: '))

此外,在循环内部,您应该将其重新分配给while,而不是打印函数的结果,否则您将陷入无限循环。raw_inputtemp

于 2013-10-21T19:56:49.960 回答
2

除了其他答案提到的 int/str 问题外,您的问题是您从不修改temp变量。在循环的最后一行,你应该这样做:

temp = raw_input('enter temp in celsius, enter -999 to exit: ') #ask user for temp  

再次!

于 2013-10-21T19:59:14.643 回答