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

时间:2014-12-01 19:59:47

标签: python typeerror

当我尝试输入一个数字进入系统时,我收到一个错误。

userInput= int(input("What is", RanNum1," - ", RanNum2," = ?"))

这是有问题的代码,错误包含:

Traceback (most recent call last):
File "H:/Project/MathProgram.py", line 144, in <module>
userAnswer = Addition(RanNum1, RanNum2)
File "H:/Project/MathProgram.py", line 33, in Addition
userInput= int(input("What is", RanNum1," - ", RanNum2," = ?"))
TypeError: input expected at most 1 arguments, got 5

我不知道为什么请帮忙!!!

4 个答案:

答案 0 :(得分:4)

input需要一个字符串,而不是5个参数。

您可以使用format函数使用这些变量生成字符串。

userInput= int(input("What is {} - {} = ?".format(RanNum1, RanNum2))

答案 1 :(得分:1)

这是传递给input的五个参数:

input("What is", RanNum1, " - ", RanNum2, " = ?")

使用str.format方法提供单个字符串进行输入。

inputstring = "What is {0} - {1} = ?".format(RanNum1, RanNum2)
userInput= int(input(inputstring))

答案 2 :(得分:1)

错误很清楚......你传递了5个参数:

userInput= int(input("What is", RanNum1," - ", RanNum2," = ?"))
                         ^^^      ^^^    ^^^     ^^^     ^^^
                          1        2      3       4       5

来自Java,是吗?的: - )

如果你想在python中的字符串中显示变量,你可以查看string formatting(使用其他答案)或者你也可以这样做:

userInput= int(input("What is %s - %s = ?" % (RanNum1, RanNum2)))

此外,如果您使用Python 2.x(任何少于3的版本)运行此操作,我强烈建议您使用raw_input而不是input。输入将eval用户输入为python代码,eval is evil

答案 3 :(得分:0)

虽然print可选择多个参数,但input不会。

您需要使用format函数 - userInput= int(input("What is {} - {} = ?".format(RanNum1, RanNum2)),或添加值userInput= int(input("What is" + str(RanNum1) + " - " + str(RanNum2) + " = ?"))(第一个选项最好)。