我试图写一个函数,自动计算等价向量,但我得到了一个错误
def vector(lst):
import math
Sfy , Sfx = 0
for i in lst:
fy = i[0]/math.sin(i[1])
fx = i[0]/math.cos(i[1])
if 90 < i[1] < 180:
fx = -1*fx
if 180 <= i[1] <= 270:
fx = -1*fx
fy = -1*fy
if 270 < i[1] < 360:
fy = -1*fy
print(fx , fy)
Sfy = Sfy + fy
Sfx = Sfx + fx
if Sfx < 0 and Sfy > 0:
A = 90
elif Sfx < 0 and Sfy < 0:
A = 180
elif Sfx > 0 and Sfy < 0:
A = 270
R = math.sqrt(Sfy*Sfy + Sfx*Sfx) #R is for the finale vector force and A is for its angle
A += math.asin(R/Sfy)
print(R + "(N)<" + A)
向量([100260],[5080])
错误是:
vector([100 , 260] , [50 , 80])
TypeError: vector() takes 1 positional argument but 2 were given
我想这是因为我的函数不能接受列表列表,有人知道如何解决这个问题吗
如果您给出:
vector([100 , 260] , [50 , 80])
,您已经插入了2个列表所以实际上你已经通过了两个列表,而不是一个列表
对于列表列表,您必须给出:
vector([[100 , 260] , [50 , 80]])
相关问题 更多 >
编程相关推荐