Это весь вопрос:
Возвращает сумму чисел в массиве, за исключением игнорирования разделов чисел, начинающихся с 6 и продолжающихся до следующих 9 (через каждые 6 будет следовать хотя бы один 9). Вернуть 0 без чисел.
Примеры того, как должен выглядеть вывод:
summer_69([1, 3, 5]) --> 9
summer_69([4, 5, 6, 7, 8, 9]) --> 9
summer_69([2, 1, 6, 9, 11]) --> 14
Я пытался использовать свой собственный метод, хотя есть другие доступные решения, но я хотел знаю, почему мое решение давало ошибку. Я попытался инициализировать отдельный список с именем arr1 , и я намерен выполнять итерацию по данному массиву, пока он не достигнет первых 6. Затем я хочу продолжать добавлять элементы после этого 6 в новый массив arr1 пока итератор не достигнет 9. И что касается остальных чисел, я суммирую их в блоке кода else .
Вот мое решение:
def summer_69(arr):
sum = 0
arr1 =[]
for x,i in enumerate(arr):
if i == 6:
while arr[x]!=9:
arr1 = i
x+=1
else:
sum += arr[i]
return sum
Я получаю следующую ошибку:
IndexError: list index out of range
Кто-нибудь может указать, почему он дает мне эту ошибку?