python编程计算1+(1+2)+(1+2+3)_python计算1+2+……+1000的3种方法

时间:2024-11-09 21:14:11

Python计算数列和很方便,至少有3种方法都是可行的,下面逐一介绍。

工具/原料

python

anaconda,spyder

方法/步骤

1

第一种方法就是用for循环。

s初始值赋值为0

其中range(1001)是一个列表[0,1,2,3,……,1000],

in是用作判断i是否在列表中,如果在,那么就循环执行s=s+i,直到列表全部遍历结束。如图所示:

?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

2

第二种方法直接使用sum函数。

sum(range(1001)):使用sum对列表求和即可,如图所示:

?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

3

第三种方法使用while循环。

首先是对s,i进行初始赋值;接着while条件是判断i是否小于1000(语句块中有i=i+1所以当i=999时,i+=1运算后i就是1000了);在循环的语句块中,先对i加1处理(自增),然后s=s+i(累计求和)

最后s即为所求的结果

?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

4

第四种方法是使用reduce函数。

其实这个是函数式编程。

在python3中需要加载一下reduce函数:

from functools import reduce ;

reduce(lambda x,y:x+y,range(1,1001));

如图

?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

5

第五种方法是使用数学math库。math库的fsum函数可以求一个列表的和。import math as m;

(range(1001));

如图

?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1

END

注意事项

python区分大小写,而且python使用缩进进行语句块分隔的

while中条件是1000,并不是1001,一定要注意

for和while循环后都有一个冒号,千万不能少了,否则报错

range(1001)也可以用(1001)代替

函数式编程也可以实现同样的效果,速度可能更快

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

举报作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。

展开阅读全部