Python 显示并返回函数上重复字符串的编号?

Python 显示并返回函数上重复字符串的编号?,python,Python,我已经在一个在线免费课程上学习Python了。 现在我已经开始了我几个小时以来一直在努力做的运动,但是。。。。我不明白为什么它不起作用 说明如下: 编写一个名为fizz\u count的函数,该函数将列表x作为输入,并返回该列表中字符串“fizz”的计数 例如,fizz\u count([“fizz”、“buzz”、“fizz”])应返回2。(确保您的函数返回s数字,而不是打印它。)如果需要帮助,请查看提示 提示: 尝试在函数中设置一个计数器变量(例如,计数)。计数器变量最初可以设置为零。之后,

我已经在一个在线免费课程上学习Python了。 现在我已经开始了我几个小时以来一直在努力做的运动,但是。。。。我不明白为什么它不起作用

说明如下: 编写一个名为
fizz\u count
的函数,该函数将列表
x
作为输入,并返回该列表中字符串“fizz”的计数

例如,
fizz\u count([“fizz”、“buzz”、“fizz”])
应返回
2
。(确保您的函数
返回
s数字,而不是
打印它。)如果需要帮助,请查看提示

提示: 尝试在函数中设置一个
计数器
变量(例如,
计数
)。计数器变量最初可以设置为零。之后,您可以循环遍历作为输入的列表,并在列表中的某个项等于字符串“fizz”时将计数增加1

最后,不要忘记
返回
的编号
“fizz”
s

这是我的代码:

x=["fizz","bear","fizz"]

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

print fizz_count(x) #It prints "fizz","bear","fizz" but the thing that I want is to                 
                    #print "2" because "fizz" is two times in that string..

要解决您的特定问题,请执行以下操作:

x=["fizz","bear","fizz"]

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

print fizz_count(x)
几个问题:

  • python中的参数中不需要
    *x
  • 在遍历元素时使用不同的变量名
  • count=0
    已足够,无需将其转换为字符串
  • 如果x=='fizz'
    应该是
    如果e=='fizz'
    -检查列表的元素,而不是整个列表
  • return语句必须在循环执行之后。注意缩进
  • 当然,有更好的方法来实现你所追求的目标,但我将把它留在这里,因为你似乎正在学习


    希望这有帮助

    关于脚本的几点:

    def fizz_count(*x)
    
    这可能不是您想要的语法。您在这里所做的是扩展列表,使其具有自己的参数槽。您可能希望这样传递它:

    def fizz_count(x)
    
    count = 0
    
    下一步:

    您可以这样简单地启动计数器:

    def fizz_count(x)
    
    count = 0
    
    下一步:

    现在,这使您的
    count
    变量成为
    x
    中的一个条目,但由于您扩展了列表,这可能不是您看到的。不管怎样,您还是希望这样将每个成员分配给一个变量:

    for item in x:
    
    下一步:

    同样,您不需要将其转换为字符串,
    count=count+1
    就足够了


    最后,不确定这是否只是一个格式问题,但您的返回语句应该在for循环之外。

    首先,您不应该在函数之前有
    x=[“fizz”、“bear”、“fizz”]
    ,应该在函数之后有它,因为将它与print函数一起使用更有意义。 我已经测试过了,这应该可以:

    def fizz_count(x):
     count=0
     for i in x:
      if i=='fizz':
       count+=1
     return count
    
    x=["fizz","bear","fizz"]
    print (fizz_count(x))
    

    我不明白的是,为什么要将
    计数为字符串。你不需要。只要把它设为一个普通整数,变量
    i
    在我为循环声明时自动创建。另外,你不应该有
    count=count+1
    ,因为尽管它仍然有效,但它并不是真正的pythonic方式,而且内置
    +=
    操作符是有原因的(它做同样的事情,但让你的生活变得更轻松)

    它有效!感谢您的解释,您帮助我了解了如何做“为中”,并解决了问题!非常感谢!!:谢谢你非常有建设性的回答,这对我帮助很大!我学到了很多,我想现在我真的知道如何更容易地使用“for-in”了,是的,我尝试过不转换为字符串,但失败了,我只是尝试了其他方法,但现在我知道这不是必须的:)谢谢你的评论,我知道我有一些小错误,但不会再重复了,这是件好事,
    +=
    我不知道,但我知道,就像你说的,我的生活会更轻松!:)@RikuSoulz没问题,虽然假设地说,我认为您仍然可以将count变量转换为字符串,然后在想要添加它时将其更改回原来的值,但正如您现在所知道的,除非您有意尝试生成一段复杂的代码,否则这将不是一种非常有建设性的方法!
    def fizz_count(x):
     count=0
     for i in x:
      if i=='fizz':
       count+=1
     return count
    
    x=["fizz","bear","fizz"]
    print (fizz_count(x))