①设计一个学生类,该类中包含:学号、姓名、python成绩三个属性,分别实现加减乘除的运算符重载,用于引用学生对象名就可以对学生成绩进行加减乘除运算。 ②建立张三、李四两个对象,并利用构造函数传参对其属性信息初始化。 100001 张三 95 100002 李四 87 ③对象的print()方法进行功能改写,提示设置 __str__功能,print对象时的输出如下显示: ④利用运算符重载,求两人的python成绩的总分和平均分并输出,效果如下。
时间: 2024-02-09 17:10:10 浏览: 53
设计学生类Student,属性:编号(整型);姓名(字符串),成绩(整型)。
5星 · 资源好评率100%
好的,我来逐一回答你的问题。
首先,我会用 Python 为你展示如何实现一个学生类,包含学号、姓名、Python 成绩三个属性,并重载加减乘除运算符。代码如下:
```python
class Student:
def __init__(self, num, name, score):
self.num = num
self.name = name
self.score = score
def __add__(self, other):
return self.score + other.score
def __sub__(self, other):
return self.score - other.score
def __mul__(self, other):
return self.score * other.score
def __truediv__(self, other):
return self.score / other.score
def __str__(self):
return f"{self.num} {self.name} {self.score}"
# 初始化张三和李四两个对象
zhangsan = Student(100001, "张三", 95)
lisi = Student(100002, "李四", 87)
```
接下来,我会对对象的 `print()` 方法进行改写,实现 `__str__()` 功能,以便在输出对象时按照题目要求显示。代码如下:
```python
class Student:
def __init__(self, num, name, score):
self.num = num
self.name = name
self.score = score
def __add__(self, other):
return self.score + other.score
def __sub__(self, other):
return self.score - other.score
def __mul__(self, other):
return self.score * other.score
def __truediv__(self, other):
return self.score / other.score
def __str__(self):
return f"{self.num} {self.name} {self.score}"
def print(self):
print(self.__str__())
# 初始化张三和李四两个对象
zhangsan = Student(100001, "张三", 95)
lisi = Student(100002, "李四", 87)
```
最后,根据题目要求,我们可以使用重载的加法和除法运算符,求出两个学生 Python 成绩的总分和平均分,并输出。代码如下:
```python
class Student:
def __init__(self, num, name, score):
self.num = num
self.name = name
self.score = score
def __add__(self, other):
return self.score + other.score
def __sub__(self, other):
return self.score - other.score
def __mul__(self, other):
return self.score * other.score
def __truediv__(self, other):
return self.score / other.score
def __str__(self):
return f"{self.num} {self.name} {self.score}"
def print(self):
print(self.__str__())
# 初始化张三和李四两个对象
zhangsan = Student(100001, "张三", 95)
lisi = Student(100002, "李四", 87)
# 求两人 Python 成绩的总分和平均分
total_score = zhangsan + lisi
avg_score = total_score / 2
# 输出结果
print(f"张三和李四的 Python 成绩总分为:{total_score}")
print(f"张三和李四的 Python 成绩平均分为:{avg_score}")
```
这样,就完成了你的问题的回答。如果你还有什么不明白的地方,可以继续问我哦。
阅读全文