python - 用函数制作评分计算器?
问题描述
我正在做一项学校作业,尽管我尝试了多少,但我无法弄清楚如何更改原始输入,除了单独进行每个输入,以下是我的作业参数:
- 提示用户输入数学课的数字分数。数字分数应在 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))
有什么建议吗?
解决方案
对于 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)
推荐阅读
- excel - Highlight Listbox Function
- kubernetes - Replaces command for label in helm charts
- java - How to return number-loops in String? [Java]
- python-3.x - 在 AWS Lambda 中安装 Python 包?
- python - 我可以根据不同的配置文件实例化一个程序的多个实例吗?
- git - 如何在存储库中已经存在文件的情况下使用 Visual Studio Code 设置 github?
- c# - 使用 EPSON Scan“专业模式”设置进行扫描而不显示 UI
- sql-server - SQL,其中每个 id 的最后 n 条记录满足特定条件
- markdown - 我如何建议在降价中更改多行
- python - 将一张图片与文件夹中的多张图片配对