我有一个名为item_order(order)的函数,它按顺序计算char的数量,然后返回如下内容:
'Letter a: number of letter a letter b: number of letter b'
但我得到一个错误,说我不能连接str和int。 我如何返回str和int?
这是代码(我正在使用python):
def item_order(order):
'''
order is a string containing words for the items a customer can order
returns the number of times each word is listed
with this format : name : number of times it is listed
'''
s=0
h=0
w=0
for char in order:
if char=='s':
s=s+1
if char=='h':
h=h+1
if char=='w':
w=w+1
answer='salad:', s 'hamburger:' h 'water:' w
return answer
当我用这个参数('salad, salad, hamburger, water')
调用函数时,我希望它返回这个:
'salad:2 hamburger:1 water:1'
我可以正确找到每个单词的列出次数,但我无法使用上述格式返回。
答案 0 :(得分:1)
return 'salad: {} hamburger: {} water: {}'.format(s, h, w)
字符串方法适用于此类任务:
shw
无关:您的点钞代码很脆弱。它碰巧工作正常
使用此数据集,因为字母'milkshake'
每次只显示一次
整套词。但是,如果您添加了s
之类的字词
每次出现时,此代码都会计算额外的h
和for word in order.split():
char = word[0]
if char == 's':
etc.
。
更好的方法是将字符串拆分为单词,然后查看 每个人的第一个字母:
dict
更强大的是计算单词本身并返回a
connect.php
,但是当你接受决定时,我会把它留给你;看起来像
你刚刚开始使用Python。
答案 1 :(得分:-1)
基本上从你提到的要求来看,我相信你可以在C#中尝试这样:
static string OrderInfo(string order)
{
int len = order.Length; int count;
StringBuilder builder = new StringBuilder();
for(int i=0;i<len;i++)
{
count = 0;
char toSearch = order[i];
foreach(char c in order)
{
if (c == toSearch)
count++;
}
builder.Append("Letter " + order[i] + ": " + count);
}
return builder.ToString();
}
注意:这也包括重复字母。