2013-10-27 60 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()