从函数返回字符串和int

2024-05-23 19:37:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为item_order(order)的函数,它按顺序计算字符数,然后应该返回如下内容:

'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'

我可以正确地找到每个单词被列出的次数,但是我不能用上面的格式返回它。


Tags: ofthenumberforifisorderitem
2条回答

基本上根据你提到的要求,我相信你可以在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();
        }

注:这也包括重复字母。

format字符串方法用于此类任务:

return 'salad: {} hamburger: {} water: {}'.format(s, h, w)

无关:你的计数码很脆弱。碰巧工作正常 使用此数据集,因为字母shw在 整组单词。但是,如果您添加了类似'milkshake'的单词 这段代码每次出现都会计算额外的sh

更好的方法是将字符串拆分为单词,然后查看 每个字母的第一个字母:

for word in order.split():
    char = word[0]
    if char == 's':
    etc.

更有力的方法是计算单词本身并返回 dict,但我会在你听写时留给你;它看起来像 你刚开始学Python。

相关问题 更多 >