python 设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘法和除法运算。
时间: 2024-03-06 16:50:54 浏览: 154
好的,下面是 Python 中实现一个三维向量类的代码:
```python
class Vector3:
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
def __add__(self, other):
return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)
def __sub__(self, other):
return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
def __mul__(self, other):
if isinstance(other, (int, float)):
return Vector3(self.x * other, self.y * other, self.z * other)
else:
return self.x * other.x + self.y * other.y + self.z * other.z
def __truediv__(self, other):
if isinstance(other, (int, float)):
return Vector3(self.x / other, self.y / other, self.z / other)
else:
return Vector3(self.x / other.x, self.y / other.y, self.z / other.z)
def __repr__(self):
return f"Vector3({self.x}, {self.y}, {self.z})"
```
在这个类中,`__init__` 方法用于初始化一个三维向量对象,`__add__` 和 `__sub__` 方法分别实现向量的加法和减法,`__mul__` 和 `__truediv__` 方法分别实现向量与标量的乘法和除法运算。`__repr__` 方法用于返回一个可打印的字符串表示向量对象。
下面是这个类的使用示例:
```python
a = Vector3(1, 2, 3)
b = Vector3(4, 5, 6)
# 加法运算
c = a + b
print(c) # 输出: Vector3(5, 7, 9)
# 减法运算
d = b - a
print(d) # 输出: Vector3(3, 3, 3)
# 标量乘法运算
e = a * 2
print(e) # 输出: Vector3(2, 4, 6)
# 标量除法运算
f = b / 2
print(f) # 输出: Vector3(2.0, 2.5, 3.0)
# 向量点乘运算
g = a * b
print(g) # 输出: 32
```
以上是一个简单的三维向量类的实现,也可以根据需要添加其他功能。
阅读全文