python实现1-100的累加的多种方法
1.用for循环2.用sum()函数3.用while循环4.用reduce函数,reduce()的作用是接受一个函数和一个可迭代序列,在每次迭代中,当前元素和前一个元素的输出都传递给函数,函数最后返回一个值。lambda函数接受两个参数,并返回两个元素的累加。我马上就有疑问了?reduce只是不断相加相邻的两个元素,为什么到最后会返回一个数呢,事实上reduce的工作过程是这样的:迭代序列的过程中
·
1.用for循环
one = 0
for i in range(1,101):
one = one+i
print(one)
2.用sum()函数
two = sum(range(101))
print(two)
3.用while循环
three = 0
i = 1
while i < 101:
three = three+i
i+=1
print(three)
4.用reduce函数,reduce()的作用是接受一个函数和一个可迭代序列,在每次迭代中,当前元素和前一个元素的输出都传递给函数,函数最后返回一个值。
lambda函数接受两个参数,并返回两个元素的累加。
from functools import reduce
four = reduce(lambda a,b:a+b,range(1,101))
print(four)
我马上就有疑问了?
reduce只是不断相加相邻的两个元素,为什么到最后会返回一个数呢,事实上reduce的工作过程是这样的:迭代序列的过程中,首先把 前两个元素(只能两个)传给 函数,函数加工后,然后把 得到的结果和第三个元素 作为两个参数传给函数参数, 函数加工后得到的结果又和第四个元素 作为两个参数传给函数参数,依次类推。
或者也可以这样理解:对前两个元素操作后返回一个值和剩下的元素继续组成列表,插入列表头部,然后再从列表中取出前两个元素,循环往复,直到列表为空,返回最后的值(当然实际情况应该不是这样的)
例如1-5的相加:((((1+2)+3)+4)+5)
更多推荐
已为社区贡献3条内容
所有评论(0)