这可能很难相信,但会不会是你想知道为什么这个循环在所有工作的原因是你不熟悉Python遍历列表中的所有元素的能力,不需要任何计数器变量增加它的价值?
[1,1,0,1,1,1,0,0,1,1,1,1,1]
是在Python一种阵列的存储的多个数值。
这里是一些“伪码”仅用于证明"for num in nums"
意味着在Python(在编程方面在其它 语言不支持迭代在一个列表/阵列的元件)说明目的:
noOfValuesIn_nums = lengthOf/sizeOf(nums)
for i = 0 to noOfValuesIn_nums do:
# get i=th value from 'nums' and put it to a variable named 'num':
num = nums[i]
...
顺便说一句:在问题中提供的环路给出了提供例如所期望的结果: 主([1,1,0,1,1,1,0,0,1,1,1,1,1 ]) 但不会在另一个工作,如这里演示的:
def main(nums):
count = 0
for num in nums:
if num == 1:
count+=1
else:
count = 0
return count
print(main([1,1,1,1,1,1,0,0,1,1,1,0,1]))
# it prints 1 instead of 6
找到下面的代码的人 解决了最长连续序列的任务:
def main1(nums):
count = 0
maxOnes = 0
for num in nums:
if num == 1:
count+=1
else:
if count > maxOnes:
maxOnes = count
count = 0
return maxOnes
print(main1([1,1,1,1,1,1,0,0,1,1,1,0,1]))
# gives 6
为什么你需要的'else'?此外,缩进不是很清楚 –
@MosesKoledoye如果我拿出else语句,那么它将所有1的计数加起来 –