私はプロジェクト オイラー問題に取り組んで python を学ぼうとしており、2 番目の問題 (400 万を超えないフィボナッチ数列の偶数項の合計を見つける) の解決策を書きました。このコードで正しい解が得られますが、生成したフィボナッチ数のリストから奇数の値を削除するために、モジュラス除算を 2 回使用する必要があります。ここに私が書いた解決策があります:
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 ループを 1 つだけ入れると、リスト fibonacci_list は次のようになります。
[2, 5, 8, 21, 34, 89, 144, 377, 610, 1597, 2584, 6765, 10946, 28657, 46368, 121393, 196418, 514229, 832040, 2178309, 3524578]
すべての奇数項はモジュラス除算テストに失敗し、削除されるべきではありませんか? 奇数項をすべて削除するために for ループを 2 回実行する必要があるのはなぜですか?