Я работал над проблемами Project Euler, чтобы попытаться изучить python, и я написал решение второй проблемы (найдите сумму четных членов в последовательности Фибоначчи, которые не превышают четырех миллионов). Код дает мне правильное решение, но он требует, чтобы я дважды использовал деление модуля, чтобы удалить нечетные значения из списка сгенерированных мной чисел Фибоначчи. Вот решение, которое я написал:
term_1 = 1
term_2 = 2
fibonacci_list = [1]
while term_2 < 4000000:
fibonacci_list.append(term_2)
term_1, term_2 = term_2, term_1 + term_2
for num in fibonacci_list:
if num % 2 != 0
fibonacci_list.remove(num)
for num in fibonacci_list:
if num % 2 != 0
fibonacci_list.remove(num)
return sum(fibonacci_list)
Если я добавлю только один цикл for, список fibonacci_list станет следующим:
[2, 5, 8, 21, 34, 89, 144, 377, 610, 1597, 2584, 6765, 10946, 28657, 46368, 121393, 196418, 514229, 832040, 2178309, 3524578]
Не должны ли все нечетные термины пройти проверку на деление на модуль и быть удалены? Почему мне нужно дважды запустить цикл for, чтобы удалить все нечетные термины?