鱼C论坛

 找回密码
 立即注册
查看: 3476|回复: 11

[已解决]【求大神解惑】利用循环,如何计算1到100之间的数的总和

[复制链接]
发表于 2016-9-27 21:02:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 人zai旅途 于 2016-9-27 21:24 编辑

请大神指导思路
我考虑了
for n in range(1,100)
n += 1
不知道求和,用代码怎么写呢?



  1. i = 1
  2. sum = 0
  3. while i <=100 :
  4.     sum = sum +i
  5.     i =i +1
  6. print(sum)  
复制代码


找到方法了,但是还有疑惑,sum 在这里是内置函数吗?为什么sum就能代表之前的数列之和?
最佳答案
2016-9-28 12:58:49
本帖最后由 jerryxjr1220 于 2016-9-28 13:02 编辑

python中允许使用与内置函数同名的变量,在VB或其他语言中往往是不允许的。使用了同名的变量后,变量就替代了原本函数的作用,也就是说当你用了sum=sum+1后,sum就失去了原本函数的作用,而变成了一个变量了~
一般不推荐这样使用,变量应该尽量避免与内置函数重名。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-9-27 21:14:31 | 显示全部楼层
  1. import functools
  2. print(functools.reduce(lambda x,y:x+y,range(1,101)))
复制代码


这个是从别的帖子找到的方法,但是用的是函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-27 21:37:35 | 显示全部楼层
是不是可以这样理解
当 i =1,sum =0 时, sum=sum +i =0+1 =1
当 i =2,sum =1 时, sum=sum +i =1+2 =3
当 i =3,sum =2 时, sum=sum +i =3+3 =6
后边依次类推?
那么sum = sum + i , 这里=左边的是最新一次的sum,=右边的是上一次sum,
能这样理解吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-27 21:38:54 | 显示全部楼层
人zai旅途 发表于 2016-9-27 21:37
是不是可以这样理解
当 i =1,sum =0 时, sum=sum +i =0+1 =1
当 i =2,sum =1 时, sum=sum +i =1+2 =3

@无符号整形 ,大神有没有空回答我问题啊,谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-27 22:38:11 | 显示全部楼层
count = 0
for n in range(1,101):
        count +=n
print(count)

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
人zai旅途 + 1 + 1 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-28 05:54:58 From FishC Mobile | 显示全部楼层
其实方法有很多啊,换一种思路看看 print(sum(range(1,101))) 直接就出结果了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-28 06:00:56 From FishC Mobile | 显示全部楼层
sum()本身就是函数,表示求解()中的和。而range()函数本身就构成了一个连续的元组。所以直接就可以出结果啦。

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
人zai旅途 + 1 + 1 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-28 07:56:29 | 显示全部楼层
jerryxjr1220 发表于 2016-9-28 06:00
sum()本身就是函数,表示求解()中的和。而range()函数本身就构成了一个连续的元组。所以直接就可以出结果 ...

谢谢帮忙啊,看来还是我基本知识不牢。
那么sum=sum+1,这里sum 不带()表示什么意思呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-28 12:58:49 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 jerryxjr1220 于 2016-9-28 13:02 编辑

python中允许使用与内置函数同名的变量,在VB或其他语言中往往是不允许的。使用了同名的变量后,变量就替代了原本函数的作用,也就是说当你用了sum=sum+1后,sum就失去了原本函数的作用,而变成了一个变量了~
一般不推荐这样使用,变量应该尽量避免与内置函数重名。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-28 13:43:14 | 显示全部楼层
人zai旅途 发表于 2016-9-28 07:56
谢谢帮忙啊,看来还是我基本知识不牢。
那么sum=sum+1,这里sum 不带()表示什么意思呢?

后面带个括号的一般是函数
不带括号的一般为变量
python中有许多内置函数,也就是开发人员写好的一些函数,你直接拿过来用就可以了,比如sum()求和函数,当然也可以写自定义函数
当你定义的变量名和python中原有的内置函数重名的时候,你写的变量就会覆盖原来的函数,使原来的函数作用失效
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-28 21:07:16 | 显示全部楼层
shuofxz 发表于 2016-9-28 13:43
后面带个括号的一般是函数
不带括号的一般为变量
python中有许多内置函数,也就是开发人员写好的一些函 ...

谢谢大神指导,这回理解透彻了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-28 22:05:44 | 显示全部楼层
sum=0
for i in range(1,101):
    sum+=i
print(sum)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-18 18:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表