为了账号安全,请及时绑定邮箱和手机立即绑定

这逻辑搞不懂了

sum=0.0 

sum=sum+x 

那是不是  0.0=0.0+x 

这啥JB逻辑?

正在回答

4 回答

这个sum=sum+x使用的是累加原理.

首先定义一个浮点数类型的变量sum,它的值是0.0 , 通过for循环的遍历,它从list中每取一次值,就跳出循环一次,直到取完为止.(如果不懂这句话的意思,请在循环下自行添加print x,就会发现它打印的是list中所有的元素,而且每个元素都自动分行打印,表示取出来一个元素,就打印了一次.)

现在来说sum=sum+x, x每次都会得到不同的值, 变量sum加上x并把这个加完的值赋给等号左边的sum,此时的sum就拥有了当前的值. 进入下一次循环的时候,拥有当前值的sum会再次加x的值,并把新的值继续赋给sum,直到list所有元素遍历完成.

举个例子 : 求元素的和. list中有L=[1,2,3,4], 定义一个变量, 就叫 he = 0, 使用循环for x in L:  he=he+x, print he    第一次循环的时候, he+x 就相当于 0+1, 此时he的值就是1,它得到了x的第一次循环的元素. 进入第二次循环, x此时的值成了2,  那么  he+x 就相当于 1+2, he的结果就被赋值成为3.  依此类推. 最后he的值就是list中所有元素的和.

至于sum为什么定义成0.0 , 主要是因为最后print求的是平均值. 如果你需要平均值保留小数位,就得用浮点型的变量存数值. 当然,你也可以把sum定义成0, 不过最后sum/4一定会返回一个整数值. 也就是说, 定义成0.0 代表的是浮点数,定义成0,最后结果就一定是舍弃小数位的整数.

感谢看完,希望对您有帮助. 都是新手,共同学习吧.

3 回复 有任何疑惑可以回复我~

sum 是一个局部变量,0.0是个浮点型数据大小为0,因为后边有除法,为了避免系统自动取整,所以要把数据变为浮点型

0 回复 有任何疑惑可以回复我~

据我的理解是,那个0.0并不是数学上的0.0,而是一种赋值的语句,这个的意思是把sum的值+x的值再得出新的sum值。在这个题的前面应该有关于初始sum具体是多少的吧?

0 回复 有任何疑惑可以回复我~

我的理解来看,sum只是一个变量,它指向它此刻存放数据的地方,也就是存放0.0的位置,然后下面那句就是把这个变量指向的数据拿出来做+x的操作,也就是将0.0再加上x,然后操作完了之后又将其放回了原来的位置。

0 回复 有任何疑惑可以回复我~
#1

飘雪的浮云 提问者

那意思是不是,循环中当sum有了值后,之前的值就失效了?
2016-11-20 回复 有任何疑惑可以回复我~
#2

_266 回复 飘雪的浮云 提问者

就是将值拿出来做完运算再放回去相同的位置,然后sum变量是一直指向那个位置的,也可以说就是覆盖了之前的值吧
2016-11-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758351    人
  • 解答问题       8967    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

这逻辑搞不懂了

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号