Python无法在函数中定义元组

use*_*473 11 python tuples function python-3.x

出于某种原因,我每次尝试在函数中定义元组时都会遇到语法错误.例如,我有一个向程序添加向量的函数,它看起来像这样:

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)
Run Code Online (Sandbox Code Playgroud)

这似乎没问题,但解释者说有一个语法错误并突出显示第一个元组的第一个括号.我使用的是Python 3.2.3.我究竟做错了什么?

Max*_*ant 13

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)
Run Code Online (Sandbox Code Playgroud)