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