所以我试着用codecademy来学习Python,但是我陷入了困境。它要求我定义一个以列表为参数的函数。这是我的密码:
# Write your function below!
def fizz_count(*x):
count = 0
for x in fizz_count:
if x == "fizz":
count += 1
return count
可能是我做错了一些愚蠢的事情,但它一直告诉我要确保函数只接受一个参数“x”。def fizz_count(x):
也不起作用。我在这里该怎么办?
编辑:谢谢大家的帮助,我明白我现在做错了什么。
您的函数不将列表作为参数。
*x
展开以使用传递的参数,因此您的函数应按如下方式调用:不是这样的:
注意第一个例子中缺少list对象。去掉
*
,因为您不需要它:您也可以使用
list.count
:这里有几个问题:
fizz_count
。但是fizz_count
是你的函数。x
是传入参数。所以应该是for x in x:
(但是请看#3)。*x
接受一个参数。*
使x
成为all参数的元组。如果只传递一个列表,那么列表是x[0]
,列表的项是x[0][0]
,x[0][1]
等等。更容易接受x
。x
作为列表项的占位符,这意味着循环之后,x
不再引用传入列表,而是引用它的最后一个项。在这种情况下,这实际上是可行的,因为之后不使用x
,但是为了清楚起见,最好使用不同的变量名。把这些放在一起我们会得到这样的结果:
我想你要花很长的时间来学习海豚,它们游得不快。更好的方法是:
但实际上
list
有一个count()
方法,就像tuple
一样,所以如果您确定您的参数是一个列表或元组(而不是其他类型的序列),那么您可以执行以下操作:事实上,这很简单,你几乎不需要为它编写函数!
当您将
*x
传递给函数时,则x
是一个列表。做任何一个或者
相关问题 更多 >
编程相关推荐