2017-08-25 55 views

回答

1

你正在返回一个元组,这就是正在打印的内容。仅仅因为你用逗号分开返回多个项目并不意味着print()会将这些项目看作单独的参数。否则,如何将元组打印为元组?

如果你想打印内容的元组作为独立参数的,使用*argument调用语法:

print(*fishstore("sardines", 5)) 

*argument语法使得它明确要打开所有值转化为单独项目print()来处理。

该功能并非全部有用,真的。这可能是使用string formatting把项目和价格一起合并成一个字符串打印更加有用:

def fishstore(fish, price): 
    total = "Your {} costs {}$".format(fish, price) 
    return total 

此时print(fishstore("sardines", 5))会工作得很好。

如果您正在使用Python 3.6(或更新版本),你可以使用f'....' formated string literals语法太:

def fishstore(fish, price): 
    total = f"Your {fish} costs {price}$" 
    return total 
+0

谢谢你的帮助!我还有一个问题:“参数调用语法”是什么意思?谢谢!我刚刚开始使用python 3,如果我问愚蠢的问题,我很抱歉。 –

+0

@MacKenzieRichards:在名称后面添加'(...)'称为[* call *](https://docs.python.org/3/reference/expressions.html#calls)。该语法的一部分是指定不应将对象视为调用的单个参数,而应视为一系列单独的参数。 –

+0

@MacKenzieRichards:所以'print(1,2,3)'也可以表示为'args = [1,2,3]'和print(* args)'。在print调用中使用'* args'告诉Python获取'args'中包含的所有元素,并将它们作为单独的参数使用。 –

1

你可以通过的concat替换编码total = "Your " + fish + "costs " + price +"$"的字符串。我不太积极,为什么它会像这样列表输出它,但其余的代码看起来是正确的。你也可以做print ("Your %s cost %d $", fish, price)

在Python中,逗号不会连续。如果你想把它存储在一个列表中,你也可以像其他人一样使用.join()函数。

相关问题