坚持python codecademy,list + functions

时间:2017-04-15 16:54:55

标签: python list function

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

例如: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'])

然而,当运行代码时,我收到一条错误消息,上面写着"糟糕,请再试一次。 fizz_count([' fizz',' fizz',1,' fizz',' fizz'])返回1而不是正确答案: 4"

5 个答案:

答案 0 :(得分: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'])

答案 1 :(得分:0)

只是一个提示,列表中有一个名为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'])

答案 2 :(得分:0)

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

正确的代码是:

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

答案 3 :(得分:0)

如果要增加变量,则必须分配给它:count = count + 1。通过调用return count + 1函数结束并返回变量count的值,递增1.因此,第一次到达此代码时,函数结束并返回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'])

答案 4 :(得分:0)

您需要更新与其匹配的单词数,而不是返回。此外,可以改进语义(words而不是x)。

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

assert fizz_count(["fizz", "blah", "fiz"]) == 1
assert fizz_count([]) == 0