用python设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘法和除法运算。
时间: 2024-05-01 17:22:22 浏览: 111
以下是一个简单的三维向量类的实现示例:
```python
class Vector3:
def __init__(self, x=0, y=0, z=0):
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, scalar):
return Vector3(self.x * scalar, self.y * scalar, self.z * scalar)
def __truediv__(self, scalar):
return Vector3(self.x / scalar, self.y / scalar, self.z / scalar)
def __str__(self):
return f"({self.x}, {self.y}, {self.z})"
```
这个类有一个构造函数,可以使用三个参数来初始化向量的 x、y、z 分量。还有四个魔法方法分别实现向量的加法、减法以及向量与标量的乘法和除法。最后有一个 __str__ 方法,用于将向量转换为字符串表示。
下面是一个使用示例:
```python
v1 = Vector3(1, 2, 3)
v2 = Vector3(4, 5, 6)
print(v1 + v2) # 输出 (5, 7, 9)
print(v1 - v2) # 输出 (-3, -3, -3)
print(v1 * 2) # 输出 (2, 4, 6)
print(v2 / 3) # 输出 (1.3333333333333333, 1.6666666666666667, 2.0)
```
在这个示例中,我们创建了两个三维向量 v1 和 v2,并对它们执行了加法、减法、乘法和除法运算。结果都是另一个三维向量对象。
阅读全文
相关推荐
![py](https://img-home.csdnimg.cn/images/20250102104920.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)