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

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

改成if n>=20后,那样答案变成1048574了,好疑惑
2016-12-13 回复 有任何疑惑可以回复我~
#2

weibo_嘿不纯粹_0

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

ypgao 回复 weibo_嘿不纯粹_0

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

weibo_嘿不纯粹_0 回复 ypgao

答案是1048575...
2016-12-13 回复 有任何疑惑可以回复我~
#5

weibo_嘿不纯粹_0 回复 ypgao

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

举报

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

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

进入课程

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

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号