我是编程的新手,我选择了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"
答案 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