0
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

不知道是什么意思,也不知道怎么改。帮助

谢谢

4

4 回答 4

5

您将 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明确地变成一个字符串。

于 2013-09-05T06:45:35.220 回答
1

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

利用

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

反而

于 2013-09-05T06:46:12.330 回答
0

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

代替

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

尝试

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

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

于 2013-09-05T06:46:14.550 回答
0

该函数只接受一个参数,而不是 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? "))
于 2013-09-05T06:54:32.673 回答