python设计一个三维向量类,实现向量的加法、减法以及向量与标量的乘法和除法运算
时间: 2023-12-11 11:05:46 浏览: 122
可以按照以下的代码实现一个三维向量类:
```python
class Vector:
def __init__(self, x, y, z):
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, scalar):
return Vector(self.x * scalar, self.y * scalar, self.z * scalar)
def __truediv__(self, scalar):
return Vector(self.x / scalar, self.y / scalar, self.z / scalar)
```
这里使用了 Python 中的特殊方法来实现向量类的加减乘除运算。其中 `__add__` 方法实现向量的加法,`__sub__` 方法实现向量的减法,`__mul__` 方法实现向量与标量的乘法,`__truediv__` 方法实现向量与标量的除法。
例如,我们可以这样使用这个向量类:
```python
v1 = Vector(1, 2, 3)
v2 = Vector(4, 5, 6)
v3 = v1 + v2
v4 = v1 - v2
v5 = v1 * 2
v6 = v2 / 2
print(v3.x, v3.y, v3.z) # 输出 5 7 9
print(v4.x, v4.y, v4.z) # 输出 -3 -3 -3
print(v5.x, v5.y, v5.z) # 输出 2 4 6
print(v6.x, v6.y, v6.z) # 输出 2.0 2.5 3.0
```
这里创建了两个向量 `v1` 和 `v2`,然后对它们进行了加减乘除运算,得到了新的向量 `v3`、`v4`、`v5` 和 `v6`。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.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)