"输入最多需要1个参数,得到2"

时间:2017-04-06 00:15:53

标签: python python-3.x

我试图创建一个功能,提示用户为他们指定的每个圆圈提供一个半径,但是,我似乎无法弄清楚如何在不运行的情况下显示它进入TypeError: input expected at most 1 arguments, got 2

def GetRadius():
    NUM_CIRCLES = eval(input("Enter the number of circles: "))
    for i in range(NUM_CIRCLES):
        Radius = eval(input("Enter the radius of circle #", i + 1))

GetRadius()

3 个答案:

答案 0 :(得分:1)

那是因为你给了它第二个参数。您只能为它提供要显示的字符串。这不是自由格式的打印语句。试试这个:

Radius = eval(input("Enter the radius of circle #" + str(i + 1)))

这为您提供了一个字符串值,可以发送到输入

此外,非常小心使用 eval

答案 1 :(得分:1)

input只需要一个参数,如果你想创建一个可以使用i值的字符串

Radius = eval(input("Enter the radius of circle #{} ".format(i + 1)))

也是very dangerous to use eval to blindly execute user input

答案 2 :(得分:0)

  

TypeError:输入最多需要1个参数,得到2

多数民众赞成因为你为输入函数提供了两个参数但它需要一个参数(是的,我改写了错误信息......)。

无论如何,请使用:

Radius =  float(input("Enter the radius of circle #"  + str(i + 1)))

不要使用eval。 (其他答案解释了原因)

对于未来的问题,在python解释器中使用help函数是值得的。在python解释器中尝试help(input)