如何从python def中省略括号

时间:2016-01-16 19:51:47

标签: python function parentheses

您好我正在尝试建立一个计算单词的函数,返回必须是"沙拉:0汉堡包:2水:1"请注意,每个项目都被格式化为项目的名称,冒号,项目的计数和所有项目组由空格分隔,我得到的是以下('沙拉:',1 ,' hamburger:',2,' water:',2)我怎样才能把所有的()和''退货

我的代码如下:

def item_order (order = ""):

    order = order

    s = order.count('salad')
    h = order.count('hamburger')
    w = order.count('water')

    return 'salad:',s, 'hamburger:',h, 'water:',w                       

print  item_order('water hamburger water hamburger salad')

5 个答案:

答案 0 :(得分:1)

如前面的评论所述,您将返回tuple,在打印时会生成您正在获得的输出

('salad:', 1, 'hamburger:', 2, 'water:', 2)

如果您想要返回具有上述格式的单个字符串,您可以

return ' '.join(('salad:', str(s), 'hamburger:', str(h), 'water:', str(w)))
例如,

产生

'salad: 1 hamburger: 2 water: 2'

答案 1 :(得分:0)

您正在返回元组,因此如果您打印它是正常的。

问题是,为什么你需要没有paranthesis的结果?鉴于python中没有这样的数据类型。如果您需要进行显示,可以像这样打印

for elem in result:
    print elem,
# salad: 1 hamburger: 2 water: 2

如果你需要将整个结果作为字符串,这是一个不同的问题,所以你看,你需要决定在这种情况下你需要什么。

因此,如果问题是第二个问题,您可以使用:

result = ('salad:', 1, 'hamburger:', 2, 'water:', 2)
print str(result)[1:-1]
# 'salad:', 1, 'hamburger:', 2, 'water:', 2

如果您需要字符串并且还需要删除引号,则可以返回此功能

return 'salad:' + str(s) + ' hamburger:' + str(h) + ' water:' + str(w)

答案 2 :(得分:0)

你的函数正在返回一个元组,所以当传递给print那个元组被打印出来时。并且在括号内打印元组。

您可以导入Python 3打印函数并将元组作为参数传递给函数。为此,您需要在文件的最顶部添加以下导入:

from __future__ import print_function

然后你可以这样做:

print(*item_order('water hamburger water hamburger salad'))

请注意,导入打印功能需要您始终使用print(something)而不是print something

答案 3 :(得分:0)

好吧,如果你只计算这些单词,那么用计数输出它们的最简单方法就是,从你正在计算的单词中返回一个串起来的字符串,它们的计数如下:

def item_order (order=""):

    order = order

    s = order.count('salad')
    h = order.count('hamburger')
    w = order.count('water')

    return 'salad: ' + str(s) + ' hamburger: ' + str(h) + ' water: ' + str(w)                       

print item_order('water hamburger water hamburger salad')

答案 4 :(得分:0)

您正在生成('salad:', 1, 'hamburger:', 2, 'water:', 2)形式的元组。

您可以使用.format轻松将其转换为字符串:

>>> t=('salad:', 1, 'hamburger:', 2, 'water:', 2)
>>> "{} {}, {} {}, {} {}".format(*t) 
'salad: 1, hamburger: 2, water: 2'