我正在通过Codecademy学习Python,我正在努力弄清楚为什么我在运行此查询时得到1的返回值。注意:我知道我可以做一个sequence.count(item)但是我试图在没有count函数的情况下这样做。任何帮助将不胜感激。
def count(sequence, item):
rep = int(0)
for item in sequence:
if item in sequence:
rep += 1
else:
rep = 0
return rep
print count([1], 7)
答案 0 :(得分:1)
我认为你通过使用“item”来引用两个不同的东西让你感到困惑。我将循环变量更改为i
。
def count(sequence, item):
rep = 0
for i in sequence:
if i == item:
rep += 1
return rep
print count([1], 7)
此外,您可能不希望将代表设置为0
答案 1 :(得分:1)
更正功能:
def count(sequence, item):
rep = 0
for i in sequence:
if i == item:
rep += 1
return rep
关于这些行:
for item in sequence:
if item in sequence:
当您在函数中输入[1]
时,它会:
for item in sequence
(首个且唯一的项目为1
)
if item is in sequence
(如果1
在序列中......就是这样)
然后rep += 1
,因此返回1
for item in sequence
表示对item
中的每个sequence
执行某些操作。
在您的情况下,您只是确认该项目确实在序列中。
事实上,您甚至从未使用或考虑过您输入的7
。