计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘法和除法运算(要求重载__add__、__sub__、__mul__等方法
时间: 2023-06-02 18:03:19 浏览: 104
好的,这是一个编程问题,我可以回答。可以先定义一个Vector类,包含三个浮点数作为向量的三个分量。然后重载__add__、__sub__、__mul__等方法,分别实现向量的加法、减法、标量乘法和标量除法运算。具体代码实现可以参考以下示例:
```python
class Vector:
def __init__(self, x=0, y=0, z=0):
self.x = x
self.y = y
self.z = z
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y, self.z + other.z)
def __sub__(self, other):
return Vector(self.x - other.x, self.y - other.y, self.z - other.z)
def __mul__(self, other):
if isinstance(other, Vector):
return Vector(self.x * other.x, self.y * other.y, self.z * other.z)
else:
return Vector(self.x * other, self.y * other, self.z * other)
def __truediv__(self, scalar):
return Vector(self.x / scalar, self.y / scalar, self.z / scalar)
def __repr__(self):
return f"Vector({self.x}, {self.y}, {self.z})"
```
这个Vector类可以支持向量加法、减法、标量乘法和标量除法,如下所示:
```python
v1 = Vector(1, 2, 3)
v2 = Vector(4, 5, 6)
print(v1 + v2) # Vector(5, 7, 9)
print(v1 - v2) # Vector(-3, -3, -3)
print(v1 * 2) # Vector(2, 4, 6)
print(v1 / 2) # Vector(0.5, 1.0, 1.5)
```
希望这个回答对您有所帮助。
阅读全文