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

5-6 while语句中 if语句的前后顺序问题

sum = 0

x = 1

n = 1

while True:

    sum = sum + x

    x = x*2

    n = n+1

    if n > 20:

        break

print sum

if 语句的部分,放在前面和放在后面有区别吗?会不会影响结果?在这道题目中好像没有影响。

正在回答

1 回答

if语句若是在n=n+1前面 ,第20次时 ,if中的n==20,所以还会执行第二十一次,if要放在n=n+1前面,改成if n>=20

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

weibo_嘿不纯粹_0

sorry,不用改,提问者代码运行结果是1048575,改成n>=20后结果反而少加了第20项(2的19次方)
2016-12-13 回复 有任何疑惑可以回复我~
#2

ypgao 回复 weibo_嘿不纯粹_0

1048574不就是对的了吗
2016-12-13 回复 有任何疑惑可以回复我~
#3

weibo_嘿不纯粹_0 回复 ypgao

我把sum=sum+x放在x=x*2之后,而又在n=n+1之前,少加了1,才会出现这么诡异的错误。。。
2016-12-13 回复 有任何疑惑可以回复我~
查看2条回复

举报

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

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

进入课程

5-6 while语句中 if语句的前后顺序问题

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