如何使用列表列表作为Python函数的参数

2024-04-23 09:00:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写一个函数,自动计算等价向量,但我得到了一个错误

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

我想这是因为我的函数不能接受列表列表,有人知道如何解决这个问题吗


1条回答
网友
1楼 · 发布于 2024-04-23 09:00:07

如果您给出:vector([100 , 260] , [50 , 80]),您已经插入了2个列表

所以实际上你已经通过了两个列表,而不是一个列表

对于列表列表,您必须给出:vector([[100 , 260] , [50 , 80]])

相关问题 更多 >