【问题标题】:Make a grading Calculator with Functions?用函数制作评分计算器?
【发布时间】:2020-10-14 23:24:54
【问题描述】:

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

  • 提示用户输入数学课的数字分数。数字分数应介于 0 到 100 之间。
  • 提示用户输入英语课程的数字分数。数字分数应介于 0 到 100 之间。
  • 提示用户输入体育课的数字分数。数字分数应介于 0 到 100 之间。
  • 提示用户输入科学课的数字分数。数字分数应介于 0 到 100 之间。
  • 提示用户输入艺术课的数字分数。数字分数应介于 0 到 100 之间。
  • 调用字母评分函数5次(每班一次)。 输出每个班级的数字分数和字母等级。

这就是我所做的:

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

有什么建议吗?

【问题讨论】:

  • 你想如何改变 raw_input?
  • 我希望能够让它说出列表中的不同科目,而不仅仅是询问分数,它应该输出“数学的分数是多少:”然后是“科学的分数是多少“……等等。
  • 下面的代码可以做到;只需将粘贴复制到您的交互式 python shell 中:)(考虑在 Python 中搜索“f-strings”)

标签: python function calculator variable-assignment


【解决方案1】:

对于 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)

【讨论】:

  • 这是 python 2.7 吗?试了就跑不起来?
  • Py 2.x 已死,现在尝试迁移到 3.6+ :)
  • 哈哈我必须为学校学习它。非常感谢!!它一直让我发疯。我星期一开始了这项任务。
  • 这是一个非常简单的任务:);如果您愿意,我可以发布端到端解决方案;让我知道:)
  • 你知道如何让每个函数打印你输入的结果吗?例如,如果我在原始输入中为数学输入 90,然后希望它打印“数学得分为 90,你得了 A”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-31
  • 2023-02-12
  • 2021-12-15
  • 1970-01-01
相关资源
最近更新 更多