TypeError尝试在Python中创建数学测验

时间:2016-01-30 11:46:37

标签: python typeerror

该行

question = str(input("What is",randomNumber1,"+",randomNumber2,"x",randomNumber3,"?\n"))
我的代码中的

给了我麻烦。

这是我得到的错误:

question = str(input("What is",randomNumber1,"+",randomNumber2,"x",randomNumber3,"?\n"))
TypeError: input expected at most 1 arguments, got 7

如果你能提供帮助,我会非常感激,因为我不知道我做错了什么。

4 个答案:

答案 0 :(得分:1)

您在括号中使用,作为字符串。所以Python认为,这些是被调用函数的参数。您需要将字符串附加在一起(如前所述,通过+)。

此外,您应该考虑Python2中的raw_input,因为输入被解释为Python代码:look here

答案 1 :(得分:0)

就像输出已经说过的那样。

question = str(input("What is"+randomNumber1+"+"+randomNumber2+"x"+randomNumber3+"?\n"))

答案 2 :(得分:0)

你是Python 3吗?如果您是Python 2,那么您应该使用raw_input()而不是input()。如果您使用的是Python 3,那么请尝试使用该标记(大多数人认为“Python”意味着Python 2)。

input()raw_input()都返回字符串(不需要强制它),并且它们只接受一个参数,如错误消息所述。您对正确答案的比较也使用不同的类型,您将字符串与int进行比较。

最好首先将问题构造为字符串:

question = "What is %d + %d x %d? " % (randomNumber1,randomNumber2,randomNumber3)

users_answer = input(question)

answer = randomNumber1 + randomNumber2 * randomNumber3

# users_answer and answer are different types
if int(users_answer) == answer:
    print("\n[ Correct ]\n")
    playerScore = playerScore + 1
    print("Your score is",playerScore)
    questionNumber = questionNumber + 1

else:
    print("\n[ Incorrect ]\n")
    questionNumber = questionNumber + 1

答案 3 :(得分:0)

您在调用函数,时使用input()。因此,python将其解释为7个不同的参数。

我想,以下代码可以满足您的需求。

question = str(input("What is " + str(randomNumber1) + " + " + str(randomNumber2) + " x " + str(randomNumber3) + " ?\n"))

请注意,这会将用户提供的答案存储为变量question中的字符串。

如果您需要以整数(数字)接受答案,请改用以下内容。

question = input("What is " + str(randomNumber1) + " + " + str(randomNumber2) + " x " + str(randomNumber3) + " ?\n")