我在Python3中存储while循环的输出时遇到问题。下面的代码只存储最后一个输出:5702887
x = 1
y = 2
answer = []
while x < 4000000:
y = x + y
x = y - x
answer.append(x)
如何让x存储:
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269
2178309
3524578
5702887
答案 0 :(得分:2)
我用
得到了预期的结果print answer
和结果5702887
print x
你如何尝试获得结果?
编辑:无需修改循环,您可以从
开始answer = [1]
答案 1 :(得分:1)
正如它所写的那样,你永远不会在该列表中获得1。原因是你的第一个有效循环是3-1等于2.如果你知道一个事实1需要被包括在内,只需在你创建它时将它添加到列表中。
answer = [1]
然后运行你的循环,它会将从2开始的其余数据追加到列表中。在不知道为什么明确需要1的情况下,我无法调整算法以获得所需的结果。
如果允许更改x和y的值,则make:
x = 1
y = 1
这将在answer []列表中为您提供所需的结果,而无需在创建时在列表中最初指定1
x = 1
y = 1
answer = []
while x < 4000000:
y = x + y
x = y - x
answer.append(x)
print(answer)
输出是:
[1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887]