這可能很難相信,但會不會是你想知道爲什麼這個循環在所有工作的原因是你不熟悉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的計數加起來 –