该行
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
如果你能提供帮助,我会非常感激,因为我不知道我做错了什么。
答案 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")