python实现功能,输入3个学生的3个科目的成绩,看看哪个学生总成绩最高?
时间: 2023-06-08 18:08:59 浏览: 108
可以用字典来存储学生姓名和成绩,然后依次计算每个学生的总成绩,最后比较大小即可。
代码示例:
```python
scores = {} # 存储每个学生的成绩
for i in range(3):
name = input("请输入第{}个学生的姓名:".format(i+1))
math = float(input("请输入{}的数学成绩:".format(name)))
english = float(input("请输入{}的英语成绩:".format(name)))
chinese = float(input("请输入{}的语文成绩:".format(name)))
scores[name] = math + english + chinese # 存储总成绩
# 比较哪个学生总成绩最高
max_score = max(scores.values())
max_student = [name for name, score in scores.items() if score == max_score]
print("成绩最高的学生是:{},他/她的总成绩为:{}".format(max_student, max_score))
```
你可以输入学生的姓名和成绩,然后程序会输出总成绩最高的学生。注意,这只是一个简单的示例,实际上计算成绩的方式可能更加复杂,需要根据具体情况来写代码。
相关问题
某位同学修读了n门课程(n的取值至少为3),每门课程有不同的学分,并获得了不同的成绩,请利用组合数据类型中的知识,输入各科目、成绩和学分后并输出显示,计算加权平均分后将结果输出;
好的,我可以为您提供一个Python程序来实现这个功能。请看以下代码:
```python
class Course:
def __init__(self, name, credit, grade):
self.name = name
self.credit = credit
self.grade = grade
n = int(input("请输入课程数:"))
courses = []
for i in range(n):
name = input("请输入第%d门课程名称:" % (i+1))
credit = float(input("请输入第%d门课程学分:" % (i+1)))
grade = float(input("请输入第%d门课程成绩:" % (i+1)))
courses.append(Course(name, credit, grade))
total_credit = 0
total_grade = 0
for course in courses:
total_credit += course.credit
total_grade += course.credit * course.grade
weighted_avg = total_grade / total_credit
print("各科目、成绩和学分:")
for course in courses:
print("%s:成绩%.2f,学分%.2f" % (course.name, course.grade, course.credit))
print("加权平均分为:%.2f" % weighted_avg)
```
这个程序先定义了一个名为`Course`的类,用于存储每门课程的信息。每个`Course`对象包含一个名称、学分和成绩。然后,程序通过循环输入每门课程的信息,并把它们存储在`courses`列表中。接下来,程序遍历`courses`列表,计算总学分和总成绩,最后计算出加权平均分并输出。同时,程序还会输出每门课程的详细信息。
阅读全文