【问题标题】:TypeError: input expected at most1 arguments got 3TypeError:最多期望输入 1 个参数得到 3
【发布时间】:2014-08-01 23:31:46
【问题描述】:

您好,有人可以帮我解释一下出了什么问题吗?

>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()

【问题讨论】:

    标签: python python-3.x error-handling


    【解决方案1】:

    您可以使用字符串的.format 方法:

    "Hi, {}, you will need to guess a number between 1-10".format(name)
    

    问题是您正在向input() 函数提供以逗号分隔的值。这告诉函数将这些值作为单独的参数。由于input 只接受一个参数(提示),因此会引发错误。

    【讨论】:

    • 格式可能是更好的做法,tbh。你也可以使用%s
    • %s 比 Python 3 更像 Python 2。
    【解决方案2】:

    应该是这样的

    guess = int(input("Hi"+name+"you will need to guess a number between 1-10"))
    

    【讨论】:

      【解决方案3】:

      您需要使用+ 连接字符串

      guess = int(input("Hi" + name + "you will need to guess a number between 1-10"))
      

      由于输入是一种方法,当您使用逗号时,它认为您输入的是三个参数,而不是单个连接的字符串

      【讨论】:

        【解决方案4】:

        错误消息准确地告诉你发生了什么:

        "输入最多需要 1 个参数,得到 3"

        第 13 行某处有一个函数 input()

        "输入预计最多 1 个参数,得到 3"

        调用函数的典型方式是input(string_to_show),因此它是一个只有一个变量的函数,请参阅文档:https://docs.python.org/2/library/functions.html#input

        "输入最多 1 个参数,得到 3 个"

        您似乎以某种方式调用该函数:input(a, b, c),因此您传递了三个变量而不是一个。这是一个错误

        正如其他人指出的那样,您需要将您的单词abc 连接成一个字符串变量,以便将其传递给input()。用户@bern 提出了一种使用format() 的好方法。

        【讨论】:

          猜你喜欢
          • 2020-02-08
          • 1970-01-01
          • 2012-04-15
          • 2022-11-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-06-18
          • 1970-01-01
          相关资源
          最近更新 更多