2018.6.22 学习日志(3)-----自定义类模拟三维向量及其运算

#自定义类模拟三维向量及其运算
'''
定义一个三维向量类,并定义相应的特殊方法实现两个该类对象之间
的加、减运算(要求支持运算符+、-)实现该类对象与标量的乘
除运算(要求支持运算符*/),以及向量长度的计算(要求使用属性实现)
'''
class Vector3:
    #构造方法,初始化,定义向量坐标
    def __init__(self,x,y,z):#定义了私有变量
        self.__x=x
        self.__y=y
        self.__z=z

    def add(self,another):#加法运算,another是另一个对象
        x=self.__x+another.__x
        y=self.__y+another.__y
        z=self.__z+another.__z
        print("经过加法运算后=({},{},{})".format(x,y,z))

    def sub(self,another):#减法运算
        x=self.__x-another.__x
        y=self.__y-another.__y
        z=self.__z-another.__z
        print("经过减法运算后=({},{},{})".format(x, y, z))

    def mul(self,n):#乘法运算
        x=self.__x*n
        y=self.__y*n
        z=self.__z*n
        print("经过乘法运算后=({},{},{})".format(x, y, z))
    def truediv(self,n):#除法运算
        x=self.__x/n
        y=self.__y/n
        z=self.__z/n
        print("经过除法运算后=({},{},{})".format(x, y, z))

    def length(self):#计算长度
        a=pow(pow(self.__x,2)+pow(self.__y,2)+pow(self.__z,2),0.5)
        print("长度为:{}".format(round(a,3)))#输出结果保留三位小数
n1=Vector3(1,2,3)
n2=Vector3(2,3,4)
n1.add(n2)
n1.sub(n2)
n1.mul(2)
n1.truediv(2)
n1.length()

输出结果

经过加法运算后=(3,5,7)
经过减法运算后=(-1,-1,-1)
经过乘法运算后=(2,4,6)
经过除法运算后=(0.5,1.0,1.5)
长度为:3.742

猜你喜欢

转载自blog.csdn.net/yk_0311/article/details/80778346