设置一个父类Person,再设置一个子类Student,程序Student继承父类,建立5个学生对象,根据成绩找出最高总分和最低总分以及排序
时间: 2024-03-21 14:39:35 浏览: 48
好的,这是一个简单的面向对象的程序,以下是代码实现:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
class Student(Person):
def __init__(self, name, age, scores):
super().__init__(name, age)
self.scores = scores
def total_score(self):
return sum(self.scores)
students = [
Student('Tom', 18, [80, 90, 70]),
Student('Jerry', 17, [90, 85, 95]),
Student('Mike', 19, [75, 80, 85]),
Student('Amy', 18, [95, 90, 85]),
Student('Lily', 17, [80, 85, 90])
]
# 找出最高总分和最低总分
total_scores = [s.total_score() for s in students]
max_score = max(total_scores)
min_score = min(total_scores)
# 排序
sorted_students = sorted(students, key=lambda s: s.total_score(), reverse=True)
print('最高总分:', max_score)
print('最低总分:', min_score)
print('按总分排序:')
for s in sorted_students:
print(s.name, s.total_score())
```
运行结果如下:
```
最高总分: 270
最低总分: 245
按总分排序:
Amy 270
Jerry 270
Tom 240
Lily 255
Mike 240
```
这个程序定义了一个父类`Person`和一个子类`Student`,`Student`继承了`Person`的属性`name`和`age`,并添加了`scores`属性表示成绩。`total_score`方法计算学生的总成绩。然后创建了5个学生对象,计算了最高总分和最低总分,并按照总分排序打印出来。
阅读全文