python 三维向量的运算 - 实验15 面向对象 - 《Python编程基础及应用实验教程》 - 高教社 分数 10 作者 海洋饼干叔叔 单位 重庆大学 对于一个三维向量(x,y,z),其加法运算定义为: image.png 减法运算定义为: image.png 模长定义为: image.png 请根据上述定义,完善下述三维向量类Vector3D的设计,使得程序可以完成三维向量的对象打印、加减法以及求模长的操作。程序的输出应与期望一致,且要求每个空白处填写的代码不超过一行。
时间: 2024-02-24 10:53:27 浏览: 175
根据题目要求,可以设计如下的三维向量类:
```python
class Vector3D:
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
def __str__(self):
return f"({self.x}, {self.y}, {self.z})"
def __add__(self, other):
return Vector3D(self.x + other.x, self.y + other.y, self.z + other.z)
def __sub__(self, other):
return Vector3D(self.x - other.x, self.y - other.y, self.z - other.z)
def __abs__(self):
return (self.x ** 2 + self.y ** 2 + self.z ** 2) ** 0.5
```
在上述代码中,`__init__`方法定义了三维向量的三个分量`x`、`y`、`z`,`__str__`方法用于打印三维向量的值,`__add__`方法和`__sub__`方法分别定义了三维向量的加法和减法运算,`__abs__`方法定义了三维向量的模长运算。
下面是一个简单的测试代码,演示了如何使用`Vector3D`类进行三维向量的加减法和模长运算:
```python
v1 = Vector3D(1, 2, 3)
v2 = Vector3D(4, 5, 6)
print("v1 =", v1)
print("v2 =", v2)
print("v1 + v2 =", v1 + v2)
print("v1 - v2 =", v1 - v2)
print("|v1| =", abs(v1))
print("|v2| =", abs(v2))
```
输出结果如下:
```
v1 = (1, 2, 3)
v2 = (4, 5, 6)
v1 + v2 = (5, 7, 9)
v1 - v2 = (-3, -3, -3)
|v1| = 3.7416573867739413
|v2| = 8.774964387392123
```
阅读全文
相关推荐












