我认为这是一个令人尴尬的简单问题,但是三个小时的谷歌搜索和检查stackoverflow没有帮助。
我们说我的代码非常简单:
def secret_formula(started):
jelly_beans = started*500
jars = jelly_beans/1000
crates = jars/100
return jelly_beans,jars,crates
start_point = 10000
print("We'd have {} beans, {} jars, and {} crates.".format(secret_formula(start_point)))
我发现" IndexError:tuple索引超出范围"会发生什么?所以我只打印secret_formula
函数来查看它的样子,它看起来像这样:
(5000000, 5000.0, 50.0)
基本上,它将输出视为一个事物' (我还是很新,对不起,如果我的语言不正确的话)。我的问题是,为什么它会这样对待它,如何让它通过三个输出(jelly_beans
,jars
和crates
),以便正确格式化字符串?< / p>
谢谢!
答案 0 :(得分:1)
字符串的format
函数采用可变数量的参数。 secret_formula
函数返回一个元组。您想将其转换为参数列表。这是使用以下语法完成的:
print("We'd have {} beans, {} jars, and {} crates.".format(*secret_formula(start_point)))
重要的标准是*
字符。它告诉您要将以下iterable转换为要传递给函数的参数列表。