您好我正在尝试建立一个计算单词的函数,返回必须是"沙拉: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')
答案 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'