我有这个程序来计算Fibonacci序列中的项;一旦完成该过程,我打算评估所有偶数值并将它们添加到空列表中,然后对列表中的所有项进行求和。 但是,总和过程中我唯一得到的就是""
注意:" for"之后有制表符号。线和"如果"线
nt=input("Ingrese el numero de terminos:", )
w=1
x=0
y=0
z=1
print w
for i in xrange(2,nt+1):
y=z+x
x=z
z=y
print z
if z%2==0:
list=[]
list=list+[input(z)]
sum(list)
print sum
答案 0 :(得分:1)
一种更简单的方法:
nt=input("Ingrese el numero de terminos:", )
fib=[0,1]
for i in range(nt-2):
fib.append(sum(fib[-2:]))
print sum(i for i in fib if i%2 == 0)
答案 1 :(得分:0)
您需要将其实际分配给变量
total = sum(list)
print total
现在,sum
没有变量返回,因此它会计算总和,然后继续前进。
答案 2 :(得分:0)
我认为你的缩进也是错的,你的代码每次找到偶数时都会重置你的列表,2)你不应该使用" list"作为变量,因为它是python中的一个特殊单词,可能会导致问题。 3)当您向列表添加内容时,您不需要使用输入。
试试这个版本:
nt=input("Ingrese el numero de terminos:", )
lst =[]
w=1
x=0
y=0
z=1 # could replace 4 lines with w,x,y,z = 1,0,0,1
print w
for i in xrange(2,nt+1):
y=z+x
x=z
z=y
print z
if z%2==0:
lst=lst+[z] # Would be better to use append
total = sum(list)
print total
答案 3 :(得分:0)
# Note; both sum and list are built in. You do not want to have variables
# using these names.
#
# A minimal modification to make it work on both Python2 and Python3.
from __future__ import print_function
nt=int(input("Ingrese el numero de terminos:", ))
w=1
x=0
y=0
z=1
print(w)
lst=[]
for i in range(2,nt+1):
y=z+x
x=z
z=y
print(z)
if z%2==0:
lst.append(z)
print("The sum is", sum(lst))