我有一个名为 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'
我可以正确地找到每个单词被列出的次数,但是我不能用上面的格式返回它。
请您参考如下方法:
format 字符串方法专用于此类任务:
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,但当你使用字典时,我会把它留给你;看起来像 你才刚刚开始使用 Python。
