在python中学习循环,本书我正在使用刚刚介绍的“while”语句,为介绍编程类做问题,我需要获取用户输入的摄氏温度并将其转换为华氏温度并添加总计的转换temps在一起,在我的伪代码中它是有道理但我在应用'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?
答案 0 :(得分:6)
raw_input()
返回str
个对象。因此,当您通过-999
时,它确实会为您提供"-999"
,这不等于-999
。您应该使用int()
函数将其转换为整数:
temp = int(raw_input('enter temp in celsius, enter -999 to exit: '))
此外,在while
循环内部,您应该将其重新分配回raw_input
,而不是打印temp
函数的结果,否则您将陷入无限循环。
答案 1 :(得分:2)
除了其他答案提到的int / str问题之外,您的问题是您永远不会修改temp
变量。在循环的最后一行,你应该这样做:
temp = raw_input('enter temp in celsius, enter -999 to exit: ') #ask user for temp
再次!