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