2013-10-27 45 views
1

我正在开发一个课程程序,用于查找5个输入测试分数的平均值,然后显示与每个字母分数相关的字母等级。信评分是一个10分的系统(A = 90-100 B = 80-89等)确定平均成绩和显示字母等级

这是我迄今为止放在一起的,但它似乎并不认可语法中的“平均”。有什么建议么?

def main(): 
    while true: 
     grade = int(input('Enter grade: ')) 
     total += grade 
     avg = calc_average(total) 
     abc_grade = determine_grade(grade) 

     print('Average grade is: ' avg) 
     print('Letter grades for entered grades are: ' abc_grade) 

    def calc_average(total): 
     return total/5 

    def determine_grade(grade): 
     if grade >= 90 and <= 100: 
      return 'A' 
     elif grade >= 80 and <= 89: 
      return 'B' 
     elif grade >= 70 and <= 79: 
      return 'C' 
     elif grade >= 60 and <= 69: 
      return 'D' 
     else: 
      return 'F' 

main() 
+2

请解释**它似乎不识别语法**中的'“avg”'? –

+0

python返回“无效语法”,然后在代码窗口中突出显示“avg”。 – RobertJRodriguez

+0

成绩总是会是整数? –

回答

1
_list = [] 


def calc_average(total): 
    return total/5 


def determine_grade(grade): 
    if grade >= 90 and grade <= 100: 
     return 'A' 
    elif grade >= 80 and grade <= 89: 
     return 'B' 
    elif grade >= 70 and grade <= 79: 
     return 'C' 
    elif grade >= 60 and grade <= 69: 
     return 'D' 
    else: 
     return 'F' 


while True: 
    grade = int(input('Enter grade: ')) 
    _list.append(grade) 

    avg = calc_average(sum(_list)) 
    abc_grade = ' '.join([determine_grade(mark) for mark in _list]) 

    if len(_list) > 5: 
     break 

print('Average grade is: ', avg) 
print('Letter grades for entered grades are: ', abc_grade) 
+0

这正是我想要完成的。有没有办法列出每个单独的字母等级而不使用_list来存储等级? – RobertJRodriguez

+0

是的,有多种方法可以避免'_list',但是因为'grade'是一个变量,所以当您执行循环操作时,它会被覆盖。所以,你应该坚持'评分',并且你也可以通过其他数据结构来做到这一点 –

3

使用:

print('Average grade is: '+str(avg)) 
    print('Letter grades for entered grades are: '+abc_grade) 

print('Average grade is: %.2f'%(avg)) 
    print('Letter grades for entered grades are: %s'%(abc_grade)) 
0

这个工作对我..除非你的代码的一些细微的变化是工作的罚款。

def main(): 
    total = 0;avg = 0;abc_grade = 0 

def calc_average(total): 
    return total/5 

def determine_grade(grade): 
    if 90 <= grade <= 100: 
     return 'A' 
    elif 80 <= grade <= 89: 
     return 'B' 
    elif 70 <= grade <= 79: 
     return 'C' 
    elif 60 <= grade <= 69: 
     return 'D' 
    else: 
     return 'F' 

while(True): 
    grade = int(input('Enter grade: ')) 
    total += grade 
    avg = calc_average(total) 
    abc_grade = determine_grade(grade) 

    print('Average grade is: ' + str(avg)) 
    print('Letter grades for entered grades are: ' + str(abc_grade)) 


main() 

希望你能找出差异。 :)

0
def main(): 

    print("This is a program which displays the grade from a score") 

    print("") 

    grade = eval(input("What is the value of the score : ")) 

    print("") 

    if 90 <= grade <= 100: 
    print("Your get an A") 

    elif 80 <= grade <= 89: 
    print("Your get a B") 
    elif 70 <= grade <= 79: 
    print("Your get a C") 
    elif 60 <= grade <= 69: 
    print("Your get a D") 
    else: 
    print("Your get an F") 


main()