【问题标题】:Not sure why I'm getting a TypeError不知道为什么我会收到 TypeError
【发布时间】:2013-09-08 21:08:31
【问题描述】:
num_trades = int(input("Number of trades for today? "))
for i in range(1, num_trades + 1):
    print()
    action = input("Trade number", i, "(buy/sell)? ")
    num_shares = int(input("Number of shares to buy? "))

我收到了TypeError 在线,"action = input("Trade number", i, "(buy/sell)? ")"

此错误消息显示“TypeError: input expected at most 1 arguments, got 3

不知道这是什么意思,也不知道如何改正。帮助

谢谢

【问题讨论】:

    标签: python typeerror


    【解决方案1】:

    您将 3 个参数传递给 input()

    action = input("Trade number", i, "(buy/sell)? ")
    

    只需要一个;只有print() 接受多个参数。使用字符串格式:

    action = input("Trade number {} (buy/sell)? ".format(i))
    

    或使用字符串连接:

    action = input("Trade number " + str(i) + " (buy/sell)? ")
    

    但这需要您将i 显式转换为字符串。

    【讨论】:

      【解决方案2】:

      那是因为您使用 3 个参数调用输入

      使用

      input("Trade number " + str(i) + " (buy/sell?")
      

      改为

      【讨论】:

        【解决方案3】:

        错误告诉你准确出了什么问题。 input 函数需要一个参数,但你给了它三个。

        代替

        input("Trade number", i, "(buy/sell)? ")
        

        试试

        input("Trade number " + str(i) + " (buy/sell)? ")
        

        您可能会感到困惑,因为您可以print 多个事物,通过用逗号分隔它们,但 99% 的地方,这是行不通的。 input 期望你给它一个字符串参数,并且通过在那里放置逗号,你已经给了它三个参数。我的建议将这三个字符串合并为一个,我们将其传递给input

        【讨论】:

          【解决方案4】:

          该函数只接受一个参数,而不是 3 个。您的意思是:

          num_trades = int(input("Number of trades for today? "))
          for i in range(1, num_trades + 1):
          print()
          action = input("Trade number " + str(i) + " (buy/sell)? ")
          num_shares = int(input("Number of shares to buy? "))
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-11-12
            • 1970-01-01
            • 2022-12-04
            • 1970-01-01
            • 2011-07-23
            • 1970-01-01
            • 2023-01-02
            • 2022-01-23
            相关资源
            最近更新 更多