类型错误:输入最多接受1个参数,实际为3个

1 投票
4 回答
712 浏览
提问于 2025-04-18 09:28

你好,有人能帮我解释一下我哪里出错了吗?

>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),也就是说你传了三个变量,而不是一个。这就是错误所在。

正如其他人提到的,你需要把你的单词 abc 合并成一个字符串变量,然后再传给 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 只接受一个参数(也就是提示信息),所以就会出现错误。

撰写回答