基于Python的向量运算


class Vector:
    def __init__(self,a,b):
        self.a=a
        self.b=b
    def jia(self):
        c1=self.a[0]+self.b[0]
        c2=self.a[1]+self.b[1]
        return (c1,c2)
    def jian(self):
        c1 = self.a[0] - self.b[0]
        c2 = self.a[1] - self.b[1]
        return (c1, c2)
    def cheng(self):
        c1 = self.a[0] * self.b[0]
        c2 = self.a[1] * self.b[1]
        return (c1+c2)
if __name__=="__main__":
    a=eval(input())
    b=eval(input())
    f=Vector(a,b)
    print("加:",f.jia())
    print("减:",f.jian())
    print("乘:", f.cheng())

这一部分代码是向量的运算(传入两个参数):

运用类和对象的思想,定义了一个向量类(Vector类),在Vector类中定义了三个函数,分别是加减乘,然后分别返回值到主函数中,打印输出;其中最重要的__init__函数是构造函数,接受两个参数a,b的传递并被存储在实例变量 self.a 和 self.b 中。

我遇到的问题就是实例变量的使用,传入的是两个参数,是以列表的形式,在使用时没有使用列表的形式。解决的方法就是使用列表的形式,对两个参数进行计算,分别是self.a[0]和self.a[1].

​
class Vector:
    def __init__(self,vec):
        self.vec=vec
    def jia(self,v_b):
        c1=(self.vec[0]+v_b.vec[0])
        c2=(self.vec[1]+v_b.vec[1])
        return (c1,c2)
    def jian(self,v_b):
        c1 = (self.vec[0] - v_b.vec[0])
        c2 = (self.vec[1] - v_b.vec[1])
        return (c1,c2)
    def diancheng(self,v_b):
        c1 = (self.vec[0] * v_b.vec[0])
        c2 = (self.vec[1] * v_b.vec[1])
        return c1+c2

if __name__=="__main__":
    a=eval(input("请输入向量a: "))
    b=eval(input("请输入向量b: "))
    v_a=Vector(a)
    v_b=Vector(b)
    print("加:",v_a.jia(v_b))
    print("减:", v_a.jian(v_b))
    print("点乘:", v_a.diancheng(v_b))

​

这一部分是向量的计算(一个参数的传递):

这个特别的地方就是只有一个参数传递,在对函数进行调用时,就需要再对函数传入一个参数。我遇到的问题就是参数传递的问题,然后从网上查阅了相关资料,学会了以上的使用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值