sum(list)函数Python

时间:2014-07-31 14:10:57

标签: python function sum

我有这个程序来计算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

4 个答案:

答案 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))