这逻辑搞不懂了
sum=0.0
sum=sum+x
那是不是 0.0=0.0+x
这啥JB逻辑?
sum=0.0
sum=sum+x
那是不是 0.0=0.0+x
这啥JB逻辑?
2016-11-20
这个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,最后结果就一定是舍弃小数位的整数.
感谢看完,希望对您有帮助. 都是新手,共同学习吧.
举报