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))
这一部分是向量的计算(一个参数的传递):
这个特别的地方就是只有一个参数传递,在对函数进行调用时,就需要再对函数传入一个参数。我遇到的问题就是参数传递的问题,然后从网上查阅了相关资料,学会了以上的使用方法