学习python两天:)现在我尝试解决Project Euler problem #2,我需要帮助。
更具体地说,我需要知道如何添加添加到空列表中的数字。我试过'sum',但似乎并不适合教程网站的建议。我正在使用python 3.到目前为止,这是我的代码:
a = 0
b = 1
n = a+b
while (n < 20):
a, b = b, a + b
n = a+b
if n%2 == 0:
mylist = []
mylist.append(n)
print(sum(mylist))
此输出:
2
8
现在我该如何添加它们?谢谢:))
答案 0 :(得分:4)
你做得对(列表的总和),主要问题在于这句话:
mylist = []
在while
循环之前移动它。否则,您将在循环中每个时间创建一个新的empy mylist
。
此外,您可能希望在完成循环后打印列表的总和。
即,
...
mylist = []
while (n < 20):
a, b = b, a + b
n = a+b
if n%2 == 0:
mylist.append(n)
print(sum(mylist))
答案 1 :(得分:2)
您在向其追加数字之前创建一个新的空列表,因此您将只拥有一个单元素列表。在开始之前创建一个空的mylist。
答案 2 :(得分:1)
由于您似乎已经解决了列表问题,我建议使用列表替代。
尝试以下使用整数对象而不是列表的解决方案:
f = 0
n = 1
r = 0
s = 0
while (n < 4000000):
r = f + n
f = n
n = r
if n % 2 == 0:
s += n
print(s)
答案 3 :(得分:0)
就像@Ned&amp; @Levon指出。
a = 0
b = 1
n = a+b
mylist = []
while (n < 20):
a, b = b, a + b
n = a+b
if n%2 == 0:
mylist.append(n)
print(sum(mylist))