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

如果sum=sum+x的位置提前,为什么结果为5151

x=0
sum=0
while True:
    x=x+1
    sum=sum+x
    if x>100:
        break
    if x%2==0:
        continue
print sum

就是把sum=sum+x提前为什么输出结果为5151?


正在回答

5 回答

你这个不是计算所有质数,你的程序师计算100以内所有数的和,朋友

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

Randoolx 提问者

但是100内的和是5050,为什么会出现5151?
2016-06-17 回复 有任何疑惑可以回复我~

又看了一遍,知道是怎么回事了。continue命令跳过的是它后面的代码,继续下一个循环。在题主写的代码中,sum=sum+x提前,而continue命令在最后。假如x=2,它不符合continue的条件,那么会跳过continue后面的代码,继续下一个循环,即计算x=3时的x=x+1,sum=sum+x...。问题是而continue后面没有代码,则这个条件对于筛选偶数并没有用,故而计算的是0-100所有数的和。

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

同问,不明白

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

sum提前表示前1-100的总和,具体: x=0,sum=1   x=1,sum=1+2=3   x=2,sum=3+3=6..... 

其中的x是 x=x+1等号后面的 x

如果sum在后面时,sum=sum+x    sum是0    x=100时,sum=0+100+1

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

Randoolx 提问者

非常感谢!
2016-06-17 回复 有任何疑惑可以回复我~
#2

爱吃小鱼干3457117

看的不是很懂,放在前面加就提前表示总和,那么循环运算起来是x = 1 sum = 0 + 1, x = 2 sum = 1 + 2, x = 3 sum = 3+3。。。。。 放在后面就是sum = 0 + 100 (这个100是x循环的来的对吗?)+1 (这个是哪来的呢) 还有在这一步骤的循环是怎么回事呢,看不懂,,,,
2016-07-07 回复 有任何疑惑可以回复我~

你这个continue写的不对吧

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

举报

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

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

进入课程

如果sum=sum+x的位置提前,为什么结果为5151

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