将值列表输入到函数中

时间:2016-04-04 14:51:52

标签: python python-2.7

我正在制作一个程序,确定三角形是钝角(O),锐角(A)还是右(R)

Enter in the length of angles
>>> 3 8 9
TypeError: pythag() takes exactly 3 arguments (1 given)

我理解为什么我收到错误,但我想要做的是以某种方式将列表的值循环到函数中,然后然后调用该函数。

input = raw_input("Enter in the length of angles\n>>> ") #>>> 3 8 9
lst = input.split() #splits the input into a list by whitespace
for i in lst: #converts the values in the list to integers
    int(i)

def pythag(a,b,c): #function to perform calculation
    if a^2 + b^2 != c^2:
        if c^2 > a^2 or b^2:
            return "A"
        else:
            return "O"
    else:
        return "R"

pythag(lst)

有什么建议吗?

提前致谢。

1 个答案:

答案 0 :(得分:3)

首先,int(i)对原始列表没有任何作用,因此它仍然包含字符串。其次,你的异常发生的地方是你仍然向函数传递一个参数。

lst = [int(i) for i in lst]  # convert the input
pythag(*lst)  # same as pythag(lst[0], lst[1], ...)