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

循环的代码块执行顺序是从上至下吗

sum = 0
x = 1
n = 1
while True:
    sum=sum+x
    x=x*2
    if n>20:
        break
    n=n+1
print sum

为何这样的代码结果是错的?(好像得到的是前21项之和)

正在回答

3 回答

循环到n=21的时候,先执行sum=sum+x;

然后x=x*2,

再执行break循环


这样实际上sum算的是前21项之和。

所以:将if判断放到while行下面就可以了。


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

rick2015 提问者

非常感谢!
2016-02-18 回复 有任何疑惑可以回复我~
sum = 0
x = 1
n = 1
while True:
    sum=sum+x
    x=x*2
    n=n+1
    if n>20:
        break    
print sum

谢谢答复!但是好像还是有点问题,我把if语句放在最底下是可以的(如上代码)。关键好像是在于n=n+1这个赋值是在if语句的上面(先执行)还是下面(后执行)(如下截图)。http://img1.sycdn.imooc.com//56c3568a0001751a06770442.jpg

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

循环代码是从上至下执行的。

你的代码问题出在求和环节,应该把

sum = sum + x

放在if语句下方。

或者把if放在开头

或者直接在while上改动条件

while n>20

原因是,在if判断循环次数前,sum的值已经发生了改变

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

举报

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

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

进入课程

循环的代码块执行顺序是从上至下吗

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