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

第四五行代码能互换吗?会有什么问题,为什么计算结果差了98

sum = 0

x = 1

while x < 98:

    sum = sum + x

    x = x + 2

print sum


正在回答

2 回答

已解决

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

1、不能。统一作用域下的代码执行顺序是从上往下的(大多数情况)。

2、互换之后会导致执行条件存在漏洞致使结果的偏移。

3、98以内的奇数和,互换之后会先执行x + 2 部分。代入看看,当x = 1时,先执行 x + 2 = 3,sum = 0 + 3,那么最终结果将缺失x的初始值1;当x = 97(x<98)循环还在继续,仍会先执行x + 2 = 99(x>98),sum = sum + 99,最终结果就多了这个99,再与少的1相减后,你的答案就会多出正解98;正确的情况下,当x = 97时,先执行sum = sum + 97,再执行 x + 2 = 99 (x>98),这时while就会中断循环不再执行。

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

qq_瞌睡糖_aknGLQ 提问者

应该要加到99才是正解吧,所以是不是应该改成while x < 100呢
2018-10-15 回复 有任何疑惑可以回复我~
#2

没错_我是小黄人 回复 qq_瞌睡糖_aknGLQ 提问者

根据你的代码看出是计算98以内的奇数和,100以内也是同理。希望以上能帮到你,biu~biu~
2018-10-15 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

第四五行代码能互换吗?会有什么问题,为什么计算结果差了98

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

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

帮助反馈 APP下载

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

公众号

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