由于某种原因在python中我每次尝试在函数中定义元组时都会出现语法错误。例如,我有一个向程序添加向量的函数,它看起来像这样:
def add_vectors((angle_1, l_1),(angle_2, l_2)):
x=math.sin(angle1)*l_1+math.sin(angle2)*l_2
y=math.cos(angle1)*l_1+math.cos(angle2)*l_2
angle=0.5*math.pi-math.atan2(y, x)
length=math.hypot(x, y)
return (angle, length)
这似乎没问题,但是解释器说有一个语法错误并突出显示第一个元组的第一个括号。我使用的是Python 3.2.3。我做错了什么?
答案 0 :(得分:11)
Python3中不再支持元组参数:http://www.python.org/dev/peps/pep-3113/
您可以在功能开头打开元组:
def add_vectors(v1, v2):
angle_1, l_1 = v1
angle_2, l_2 = v2
x=math.sin(angle1)*l_1+math.sin(angle2)*l_2
y=math.cos(angle1)*l_1+math.cos(angle2)*l_2
angle=0.5*math.pi-math.atan2(y, x)
length=math.hypot(x, y)
return (angle, length)
答案 1 :(得分:1)
没有这种元组解包的语法。相反,将两个元组作为参数单独使用,然后将它们解压缩为单独的参数。
def add_vectors(tup1, tup2):
angle_1, l_1 = tup1
angle_2, l_2 = tup2
...