定义一个学生类,使用类方法和静态方法计算学生的平均成绩。 要求:学生类包括: (1)包含3个类属性,存储学生总人数、总成绩和平均分(平均分为整数)。 (2)包含两个对象属性,存储学生的姓名和成绩。 (3)定义构造方法,为对象属性附初始值,计算学生总人数、总成绩和平均分。 (4)定义一个类方法,输出当前学生总人数和平均分。 (5)定义一个静态方法,输出信息“学生数学成绩!”。 (6)定义一个对象方法,用于输出当前学生姓名以及成绩和平均成绩的差值
时间: 2024-01-03 10:03:44 浏览: 68
学生类平均成绩的计算
好的,下面是符合您要求的Python代码实现:
```python
class Student:
total_students = 0
total_scores = 0
average_score = 0
def __init__(self, name, score):
self.name = name
self.score = score
Student.total_students += 1
Student.total_scores += score
Student.average_score = int(Student.total_scores / Student.total_students)
@classmethod
def get_info(cls):
print("当前学生总人数为:{},平均分为:{}".format(cls.total_students, cls.average_score))
@staticmethod
def math_score():
print("学生数学成绩!")
def print_info(self):
diff = self.score - Student.average_score
print("{}的成绩为{},与平均分相差{}".format(self.name, self.score, diff))
```
这个学生类中,我们定义了三个类属性,分别表示学生总人数、总成绩和平均分(平均分为整数)。还有两个对象属性,存储学生的姓名和成绩。在构造方法中,我们为对象属性附初始值,计算学生总人数、总成绩和平均分。同时,每次创建新的学生对象时,总人数和总成绩都会相应地增加。
接下来,我们定义了一个类方法 `get_info`,用于输出当前学生总人数和平均分。另外,我们还定义了一个静态方法 `math_score`,用于输出信息“学生数学成绩!”。最后,我们定义了一个对象方法 `print_info`,用于输出当前学生姓名以及成绩和平均成绩的差值。
您可以通过下面的代码来测试这个学生类的实现:
```python
s1 = Student("张三", 90)
s2 = Student("李四", 85)
s3 = Student("王五", 95)
Student.get_info()
Student.math_score()
s1.print_info()
s2.print_info()
s3.print_info()
```
输出结果为:
```
当前学生总人数为:3,平均分为:90
学生数学成绩!
张三的成绩为90,与平均分相差0
李四的成绩为85,与平均分相差-5
王五的成绩为95,与平均分相差5
```
阅读全文