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

来源:5-6 Python之 break退出循环

不是夜晚

2019-05-23 10:58

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

    n = n + 1

    sum = sum + x

print sum

写回答 关注

4回答

  • 慕侠5394016
    2019-05-23 12:49:20
    已采纳

    第一: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


    夏柘析

    如果别人求第一项(n=1)的和 你这个求和不就错了吗

    2019-07-01 11:06:33

    共 2 条回复 >

  • 夏柘析
    2019-07-01 11:04:43

    sum = 0

    x = 1

    n = 1

    while True:

        if n > 20:

            break

        x = 2 ** (n - 1)

        sum += x

        n += 1

    print sum


  • 黯夜旋风
    2019-05-29 20:35:31

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

  • qq_慕慕9268473
    2019-05-23 13:45:03

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

    不是夜晚

    好的,明白了。

    2019-05-23 13:48:14

    共 1 条回复 >

初识Python

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

758588 学习 · 8667 问题

查看课程