Python 3-分配等级 [英] Python 3- Assign grade

查看:118
本文介绍了Python 3-分配等级的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试编写一个程序,该程序读取分数列表,然后根据分数分配字母等级.定义一个函数来提示用户输入有效分数,直到他们输入前哨值-999.该函数应创建一个列表并返回该列表.我一直将我的前哨值-999放入列表.我该如何预防?

I am trying to write a program that reads a list of scores and then assigns a letter grade based on the score. Define a function to prompt user to enter valid scores until they enter a sentinel value -999. The function should create a list and return the list. I keep getting my sentinel value -999 into my list. How do i prevent this?

def main():
   grade = getScore()
   abcGrade = getGrade(grade)
   print(grade, "is an", abcGrade)


def getScore():
   grade = []
   while grade != -999:
      grade = int(input("Enter grades (-999 ends): "))
   return grade

def getGrade(grade):
   best = 100
   if grade >= best - 10:
      return 'A'
   elif grade >=  best - 20:
      return 'B'
   elif grade >= best - 30:
      return 'C'
   elif grade >= best - 40:
      return 'D'
   else:
      return 'F'

main()

推荐答案

这就是您要寻找的:

from statistics import mean

def main():
   grades = getScores()
   grade = mean(grades)
   abcGrade = getGrade(grade)
   print(grade, "is an", abcGrade)


def getScores():
   grades = []
   while True:
      grade = int(input("Enter grades (-999 ends): "))
      if grade == -999: return grades
      grades.append(grade)

def getGrade(grade):
   best = 100
   if grade >= best - 10:
      return 'A'
   elif grade >=  best - 20:
      return 'B'
   elif grade >= best - 30:
      return 'C'
   elif grade >= best - 40:
      return 'D'
   else:
      return 'F'

main()

我已经做了尽可能少的修改.您必须获得所有成绩并取平均值.您的代码中的问题是它没有向列表返回任何值或append().

I've done as little modifications as I can. You must get all the grades and take the mean. The problem in your code was that it didn't return any value or append() to the list.

这篇关于Python 3-分配等级的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆