< 符号中的重复错误

Repeated error in < symbol

所以这是我的 sage 程序,用于获取小于 4000000 的偶数斐波那契数列表
但是在 for 循环行中,< 符号重复出现错误。
为什么会这样?

list1 = [1,1]
a = 1
b = 1
list2 = []
for b < 4000000:
    b = a + b
    list1 += [b]

for i in list1:
    if i%2 == 0:
        list2 += [i]
print list2

问题不在于“<”运算符,而在于 'for' 的用法。看起来在 sage 中,'for' 循环专门迭代固定列表。将 'for' 替换为 'while',您将获得所需的行为。

第二个问题是,'list1' 不是斐波那契数列,而是包含所有整数,因为您永远不会更新 'a'。

这是对上述两个修改的解决方案:

list1 = [1,1]

a = 1

b = 1

list2 = []

while b < 4000000:

    temp = a
    a = b
    b = temp + b
    list1 += [b]

for i in list1:

    if i%2 == 0:
        list2 += [i]


print list2