我正在尝试创建一个函数来检查数组中三个连续数字的总和是否等于7.
列表中的前三个索引似乎有效。但是,我的for
循环不会在整个列表中继续。我该如何解决这个问题?
def seven(array):
three = []
count = 0
for num in array[count::count+3]:
three.append(num)
if sum(three) == 7:
return True
break
else:
count += 1
continue
print(seven([1,1,5,0,6,1]))
答案 0 :(得分:0)
您可以使用python' s range
方法按3步迭代数组。 range(0,len(array)-2,3)
将比数组的总长度小0到3,每次传递后增加3
然后,在您对sum()
的调用中,您可以使用数组拆分来获取接下来的3个对象的总和
def seven(array):
three = []
count = 0
for num in range(0,len(array)-2,3):
three.append(num)
if sum(array[num:num+3]) == 7:
return True
return False
print(seven([1,1,5,0,6,1]))
答案 1 :(得分:0)
问题是你迭代的数组只在迭代开始时创建一次。
def seven(array):
for i in range(len(array)-2):
three = array[i:i+3]
if sum(three) == 7:
return True
return False