我正在制作一个程序,确定三角形是钝角(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)
有什么建议吗?
提前致谢。
答案 0 :(得分:3)
首先,int(i)
对原始列表没有任何作用,因此它仍然包含字符串。其次,你的异常发生的地方是你仍然向函数传递一个参数。
lst = [int(i) for i in lst] # convert the input
pythag(*lst) # same as pythag(lst[0], lst[1], ...)