首页 > 解决方案 > 用函数制作评分计算器?

问题描述

我正在做一项学校作业,尽管我尝试了多少,但我无法弄清楚如何更改原始输入,除了单独进行每个输入,以下是我的作业参数:

在此处输入图像描述

这就是我所做的:

class_list=(['Math','Science','English','P.E.','Art'])

for i in class_list:
    grades = int(input('What is your score for math: ',class_list[1])),
  
def score (grade):
  if grade>=93: 
     return ("A")
  elif grade >=90 and grade<=93:
     return ("-A")
  elif grade >= 87 and grade<=90:
      return("B+")
  elif grade>=83 and grade >=87:
     return ("B")
  elif grade >= 80 and grade >=83:
     return ("B-")
  elif grade >= 77 and grade >80:
    return ("C+")
  elif grade >= 73 and grade >= 77:
       return ("C")
  elif grade >= 70 and grade >=73:
     return ("C-")
  elif grade>= 67 and grade >= 70:
   return  ("D+")
  elif grade >=63 and grade >=67:
   return ("D")
  elif grade >=60 and grade >=63:
    return ("D-")
  else:
     return ("F")
     
print  ("For an average score of"),grade, ("your grade is %s") % (score (grade))

有什么建议吗?

标签: pythonfunctioncalculatorvariable-assignment

解决方案


对于 Python 3.2+ (iirc)

# convert the things to Py 2.x :); The below is one of the way;

class_list=['Math','Science','English','P.E.','Art']
my_dict = {}

for (idx,subject) in enumerate(class_list):
    my_dict[subject] = int(input(f"What is your score for {class_list[idx]} :")) # my_dict.update({subject : int(input(f"What is your score for {class_list[idx]} : "))})

# Calculate letter grade of each student 
def assign_letter_grade(grade):
    if grade >= 93: 
        return ("A")
    elif grade >= 90 and grade <= 93:
        return ("A-")
    elif grade >= 87 and grade <= 90:
        return("B+")
    elif grade>=83 and grade >= 87:
        return ("B")
    elif grade >= 80 and grade >= 83:
        return ("B-")
    elif grade >= 77 and grade > 80:
        return ("C+")
    elif grade >= 73 and grade >= 77:
        return ("C")
    elif grade >= 70 and grade >=73:
        return ("C-")
    elif grade>= 67 and grade >= 70:
        return  ("D+")
    elif grade >= 63 and grade >= 67:
        return ("D")
    elif grade >= 60 and grade >= 63:
        return ("D-")
    else:
        return ("F")

for subject in my_dict:
    print(f"For {subject}, a score of {my_dict[subject]}, you are eligible to get grade as {assign_letter_grade(my_dict[subject])}")

对于 Python 2.x

class_list=['Math','Science','English','P.E.','Art']
my_dict = {}
for idx,subject in enumerate(class_list):
    print("What is your score for :", class_list[idx])
    my_dict[subject] = int(raw_input())
print(my_dict)

推荐阅读