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

标下划线的三条代码顺序不一样,输出结果就不一样,虽然写的有点累赘,不过这是一开始的想法,谁能解释一下这三条代码顺序执行的时候是怎么进行的

sum = 0
x = 1
n = 1
while True:
    sum=sum+x
    n=n+1
    x=2**(n-1)

    if n > 20:
        break
print sum

正在回答

2 回答

原因在n = n +1和x = 2 **(n-1)这两句,如果这两句顺序调换,结果就会不一样。比如某一次循环中n == 2,则此时n = n+1计算出 n ==3,此时再去计算 x = 2 ** (n-1)这一句,结果x为4;如果这两句换个次序,先计算x,结果为x==2.也就是说,每次循环中算出来的x的值在两种不同顺序下是不一样的,这导致了sum的最终结果不一样

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

/*这种表示是注释的意思*/Phthon里就是#

sum是和嘛,第一行就是sum=0+1=1  #等号左边的东西是变量也就是名字的意思,右边的才是真正计算的数字

然后执行第二句n=1+1=2  #注意!!!这里n已经变成了2了

最后是第三句x=2 * (2-1)=2  #上面的n已经变成了2,所以这里n带入计算是2不是1,还有就是**没看懂,*才是乘的意思

n = n + 1
x = 2 * (n - 1)
sum = sum + x

如果要是这个顺序,n=1+1=2

x=2*(2-1)=2

sum=0+2=2

所以跟上面的值就不一样了。计算机很单纯,不给一个特殊要求的话就是逐行解析语句从上到下,上面的前因(值)变了后面的结果(结果)自然变了

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

Python小白变大牛 提问者

**在python里是次方的意思,你理解错了,不是2*(n-1)
2017-10-27 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

标下划线的三条代码顺序不一样,输出结果就不一样,虽然写的有点累赘,不过这是一开始的想法,谁能解释一下这三条代码顺序执行的时候是怎么进行的

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