所以这是我的圣人计划,用于获取甚至斐波纳契数字小于4000000的列表
但是在for循环行中,<和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
答案 0 :(得分:1)
问题不在于'&lt;'运算符但使用'for'。它看起来像在圣人中,'for'循环专门迭代固定列表。将'for'替换为'while',您将获得所需的行为。
第二个问题是,'list1'代替Fibonacci序列,最终包含所有整数,因为你永远不会更新'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