Python 确定平均成绩并显示字母成绩

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19614748/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-19 14:11:02  来源:igfitidea点击:

determining average grades and displaying letter grades

pythonaverage

提问by RobertJRodriguez

I'm working on a program for class that finds the average of 5 entered test scores then displays the letter grades relevant to each letter score. letter score is a 10 point system ( A = 90-100 B = 80-89, etc)

我正在开发一个课程程序,该程序可以找到 5 个输入测试分数的平均值,然后显示与每个字母分数相关的字母等级。字母分数是 10 分制(A = 90-100 B = 80-89 等)

This is what I've put together so far but it doesn't seem to recognize "avg" in the syntax. any suggestions?

到目前为止,这是我整理的内容,但它似乎无法识别语法中的“avg”。有什么建议?

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()

采纳答案by Siva Cn

_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)

回答by RMcG

use:

用:

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

or

或者

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

回答by Sravan K Ghantasala

This Worked for me.. A few minor changes except your code is working fine.

这对我有用......除了你的代码工作正常之外,还有一些小的变化。

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()  

Hope you can find out differences. :)

希望你能找出不同之处。:)

回答by Sam

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()