while循环,计算平均值

时间:2012-09-25 02:01:12

标签: python-2.7 while-loop

您好我是python的新手,想知道我的程序失败的原因以及为什么...谢谢,基本编码如下,

    grade = 0
    total = 0
    scorecount = 0
    while grade >=0:
        grade = raw_input("enter grade ->")
        grade = int(grade)
        total = total + grade
        total = int(total)
        scorecount = scorecount + 1
        scorecount= int(scorecount)
    average = total/scorecount
    print average

3 个答案:

答案 0 :(得分:0)

使用列表来管理这样的事情会更聪明。

grades = []

while True:
    grade = int(raw_input('Enter a grade: '))
    if grade < 0:
        break
    grades.append(grade)

print '\nAverage:', float(sum(grades)) / len(grades)

有更好的方法让用户打破循环而不是输入负等级,但是你去了。

答案 1 :(得分:0)

您在更改后检查-1,因此您应该检查原始等级是否正确,并在处理之前从循环中断开。

答案 2 :(得分:0)

您接受成绩,然后将其添加到平均值,即使它是-1 ,因为在循环重新开始之前您不会检查-1

要中途退出循环,请使用break。然后,你可以写

while True: # loop 'forever' until break
    grade = raw_input("enter grade ->")
    grade = int(grade)
    if grade == -1:
        break # we're done
    # rest of processing...