停留在python编解码器上,列表+函数

停留在python编解码器上,列表+函数,python,list,function,Python,List,Function,我是编程新手,我选择python作为第一语言。我在codecademy上被这个提示卡住了。提示是编写一个函数,计算字符串嘶嘶声在列表中出现的次数 例如:fizz_count[fizz,cat,fizz]应该返回2 到目前为止,我编写的代码是: def fizz_count(x): count = 0 for word in x: if word == 'fizz': return count + 1 return count

我是编程新手,我选择python作为第一语言。我在codecademy上被这个提示卡住了。提示是编写一个函数,计算字符串嘶嘶声在列表中出现的次数

例如:fizz_count[fizz,cat,fizz]应该返回2

到目前为止,我编写的代码是:

def fizz_count(x):
    count = 0
    for word in x:
        if word == 'fizz':
            return count + 1
        return count

fizz_count(['fizz','2', 'fizz', 'fizz', 'fizz', '1'])

但是,当运行代码时,我会收到一条错误消息,提示“Oops”,请重试。fizz_count['fizz',fizz',1',fizz',fizz']返回1而不是正确的答案:4

只是一个提示,列表有一个名为count的属性,它正好用于此目的

def fizz_count(x):
    return x.count('fizz')

print(fizz_count(['fizz','2', 'fizz', 'fizz', 'fizz', '1']))
但是如果你想坚持你所拥有的,我完全支持。您只需要在原地更改count并在循环后返回count

def fizz_count(x):
    count = 0
    for word in x:
        if word == 'fizz':
            count += 1
    return count

fizz_count(['fizz','2', 'fizz', 'fizz', 'fizz', '1'])

代码有一些错误,但不要担心,作为初学者,犯错误是可以的

正确的代码是:

def fizz_count(x):
    count = 0
    for word in x:
        if word == 'fizz':
            count += 1
    return count

fizz_count(['fizz','2', 'fizz', 'fizz', 'fizz', '1'])

如果要递增变量,必须将其赋值为:count=count+1。通过调用return count+1,函数结束并返回递增1的变量count的值。因此,第一次到达此代码时,函数结束并返回0+1

这将有助于:

def fizz_count(x):
    count = 0
    for word in x:
        if word == 'fizz':
            count = count + 1
    return count

fizz_count(['fizz','2', 'fizz', 'fizz', 'fizz', '1'])

您需要更新匹配它的单词数,而不是返回。此外,语义可以用单词代替x来改进


您不应该返回,您应该更新匹配它的单词数。作为一个初学者犯错误是可以的。 以下是正确的代码:

def fizz_count(x):
    count = 0
    for word in x:
        if word == 'fizz':
            count += 1
    return count

fizz_count(['fizz','2', 'fizz', 'fizz', 'fizz', '1'])

你知道退货是什么吗?它结束当前函数并返回值,而只是执行count+=1,这样您就不会只在一个循环上结束for循环,而将第二个返回移回一个选项卡。您将为列表中的每个单词返回count。您的代码在列表中获取一个项目,检查它是否冒泡,如果冒泡,则添加1,然后在继续下一个单词之前返回计数。这有帮助,ty
def fizz_count(x):
    count = 0
    for word in x:
        if word == 'fizz':
            count += 1
    return count

fizz_count(['fizz','2', 'fizz', 'fizz', 'fizz', '1'])