为什么不可以直接用sum函数
def square_of_sum(L):
for name in L:
return sum(name*name)
print square_of_sum([1, 2, 3, 4, 5])
print square_of_sum([-5, 0, 5, 15, 25])
def square_of_sum(L):
for name in L:
return sum(name*name)
print square_of_sum([1, 2, 3, 4, 5])
print square_of_sum([-5, 0, 5, 15, 25])
2016-07-26
是这样的,你这个有两个问题:
1、sum求和函数的参数是list,不信你试试sum(1,2,3),会报错。
2、在定义函数的时候,遇到return就跳出定义(停止)。
你先试试下面这个
def square_of_sum(L):
for name in L:
return name
print square_of_sum([1, 2, 3, 4, 5])
print square_of_sum([-5, 0, 5, 15, 25])
运行结果是: 1,-5。
说明了for只循环了一次,遇到return,返回第一个数,跳出。
那我们现在来解决第一个问题,既然sum的参数是list,在这题我们就可以把L的参数一个个的拿出来,并且拿出来的过程中x*x,再放到一个新的list里,在执行sum()即可
code:
def square_of_sum(L): #定义函数
b=[] #定义一个新的list,list名是b
for i in L: #for循环,i in L里
b.append(i*i) #往新list里放入参数:i*i
return sum(b) #sum函数派上用场
print square_of_sum([1, 2, 3, 4, 5])
print square_of_sum([-5, 0, 5, 15, 25])
#注意缩紧!
举报