类型错误:输入最多接受1个参数,实际为3个
你好,有人能帮我解释一下我哪里出错了吗?
>Traceback (most recent call last):
> File "/Users/admin/Documents/Python Scripts/Stuff I do when bored/Guessing game.py", line >.13, in <module>
> guess = int(input("Hi",name,"you will need to guess a number between 1-10"))
>TypeError: input expected at most 1 arguments, got 3
这是我的代码
import random
guesses_taken = 0
print("Welcome to the number guessing game")
name = input("Hi what is your name?")
random_number = random.randint(1,10)
while guesses_taken < 3:
guess = int(input("Hi",name,"you will need to guess a number between 1-10"))
if guess in random_number:
print("Well done you guessed it correctly!")
exit()
elif guess not in random_number:
guesses_taken = guesses_taken + 1
print("Unlucky! Try again!")
if guesses_taken >= 3:
print("Unlucky! Guess it's game over now!")
exit()
4 个回答
1
你需要用 +
来把字符串连接起来。
guess = int(input("Hi" + name + "you will need to guess a number between 1-10"))
因为输入是一个方法,当你用逗号的时候,它会认为你在输入三个不同的参数,而不是一个合并在一起的字符串。
1
这个错误信息告诉你,发生了什么事情:
"input 最多只能接收 1 个参数,但你给了 3 个"
在第 13 行有一个叫 input()
的函数
"input 最多只能接收 1 个参数,但你给了 3 个"
通常调用这个函数的方式是 input(要显示的字符串)
,所以它只需要一个变量,具体可以查看文档:https://docs.python.org/2/library/functions.html#input
"input 最多只能接收 1 个参数,但你给了 3 个"
你似乎是这样调用这个函数的:input(a, b, c)
,也就是说你传了三个变量,而不是一个。这就是错误所在。
正如其他人提到的,你需要把你的单词 a
、b
和 c
合并成一个字符串变量,然后再传给 input()
。用户 @bern 提出了一个很好的方法,可以使用 format()
来做到这一点。
1
它应该看起来像这样
guess = int(input("Hi"+name+"you will need to guess a number between 1-10"))
3
你可以使用字符串的 .format
方法:
"Hi, {}, you will need to guess a number between 1-10".format(name)
问题在于你把用逗号分开的值传给了 input()
函数。这就意味着你告诉这个函数把这些值当作不同的参数来处理。但其实 input
只接受一个参数(也就是提示信息),所以就会出现错误。