-->
当前位置:首页 > 题库 > 正文内容

程序填空题:三维向量的运算 - 实验15 面向对象 - 《Python编程基础及应用实验教程》 - 高教社

Luz3年前 (2022-06-17)题库1058
对于一个三维向量(x,y,z),其加法运算定义为:
![image.png](~/98b2306d-b9d6-4519-8c1a-699e50d84ddc.png)

减法运算定义为:
![image.png](~/dd868f25-c8e8-4dc4-af88-39e9899ef8fa.png)

模长定义为:
![image.png](~/4620e466-0519-41d1-b61d-c3deb883752d.png)

请根据上述定义,完善下述三维向量类Vector3D的设计,使得程序可以完成三维向量的对象打印、加减法以及求模长的操作。程序的输出应与期望一致,且要求每个空白处填写的代码不超过一行。

python
class Vector3D:
def __init__(self,x,y,z):
self.x,

def __str__(self):
return

def __add__(self,v):
return Vector3D(self.x+v.x,)

def __sub__(self,v):


def length(self):
return

v1 = Vector3D(1,2,3)
v2 = Vector3D(4,5,6)
v3 = v1 + v2
v4 = v2 - v1
print("v1 =",v1)
print("Length of v1 = %.4f" % v1.length())
print(f"{v1}+{v2}={v3}")
print(f"{v2}-{v1}={v4}")


期望的执行结果:<br>

v1 = (1, 2, 3)
Length of v1 = 3.7417
(1, 2, 3)+(4, 5, 6)=(5, 7, 9)
(4, 5, 6)-(1, 2, 3)=(3, 3, 3)









答案:
第1空:self.y,self.z = x,y,z

第2空:str((self.x,self.y,self.z))

第3空:self.y+v.y,self.z+v.z

第4空:return Vector3D(self.x-v.x,self.y-v.y,self.z-v.z)

第5空:(self.x**2+self.y**2+self.z**2)**0.5

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。