0

您好我对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
4

3 回答 3

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)

有比输入负分更好的方法让用户打破循环,但你去了。

于 2012-09-25T02:08:37.337 回答
0

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

于 2012-09-25T02:14:07.300 回答
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...
于 2012-09-25T02:16:47.767 回答