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

为啥 sum = sum + x放在后面,结果就不同了

x = 1
n = 1
while True:
    if n > 20:
        break
    x = x + x

    n = n + 1

    sum = sum + x

print sum

正在回答

4 回答

第一:sum没有初始值应该要先赋值为0,sum=0

第二:如果sum=sum+x放后面,第一次循环的时候先计算的是x=x+x =2 ,这样就少了第一个数x=1,这样计算的就是2+4+8+16+。。。+的二十个数,

第三: 要是改成这样的话,sum=sum+x放后面也是可以的

sum = 1

x = 1

n = 1

while True:

    if n > 19:

        break

    x= x*2

    n= n + 1

    sum = sum + x

print sum


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

不是夜晚 提问者

OK 谢啦。
2019-05-23 回复 有任何疑惑可以回复我~
#2

夏柘析

如果别人求第一项(n=1)的和 你这个求和不就错了吗
2019-07-01 回复 有任何疑惑可以回复我~

sum = 0

x = 1

n = 1

while True:

    if n > 20:

        break

    x = 2 ** (n - 1)

    sum += x

    n += 1

print sum


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

这样第一个x都加不进去,x=1是第一个数,sum要先加第一个数,你直接先x=x+x,sum直接加2

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

不清楚你说的“放在后面”是指的放在哪行代码的后面,如果是放到x = x + x,“前面”和“后面”进行对比,结果当然会不一样了,放到“后面”会多执行一次sum =sum +x

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

不是夜晚 提问者

好的,明白了。
2019-05-23 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

为啥 sum = sum + x放在后面,结果就不同了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信