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

请问为什么我这样会运行不下去?哪里出错了?

>>> sum=0

>>> x=1

>>> while True:

            if x%2==0:

                continue

           sum+=x

           x+=1

           if x>100:

               break


后面就没有>>>了,求解答


正在回答

5 回答

  if x%2==0:    //当x为偶数的时候这边会执行continue语句,继续下个循环,但是跳过了x+=1这个语句,所以x还是偶数,所以死循环了, 把x+=1提到前面来.

                continue

           sum+=x

           x+=1

           if x>100:

               break


0 回复 有任何疑惑可以回复我~
sum = 0
x = 0
while True:
    x+=1
    if x>100:
        break
    if x % 2 ==0:
        continue
    sum+=x
    
    
print sum


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

代码里不用敲<<<,这个符号是自动生成的吧

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

安晓岱的微博 提问者

是不用敲, 但是我写完上面的代码,回车后不生成>>>,也就是我无法继续输入代码
2016-09-26 回复 有任何疑惑可以回复我~
#2

CYYYYYYYYY 回复 安晓岱的微博 提问者

在命令提示符界面输入结束敲回车直接出结果的。。python对缩进要求很严的,是缩进4个空格,你的好像不对
2016-09-26 回复 有任何疑惑可以回复我~

你可以尝试在if x%2==0:下随便print一句,就会发现不断的在打印2...

原因在于x=2时会无数次进入if x%2==0: continue导致无限循环,建议重新整理一下逻辑

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

安晓岱的微博 提问者

请教一下,x=2的时候不是应该直接经过continue转到下一个x=3的情况么?为什么会无限循环?我在if x%2==0:下面尝试print,但是没有>>>,无法尝试,望不吝指正
2016-09-26 回复 有任何疑惑可以回复我~
#2

yuklngt 回复 安晓岱的微博 提问者

x+=1的语句也被跳过去了,所以下一个循环的时候x仍是2
2016-09-26 回复 有任何疑惑可以回复我~

python中没有“+=”这种表符号,改成sum=sum+x就对了

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

安晓岱的微博 提问者

尝试过,依然没有解决,python 2.7中是有'+='的,3。0我没用过不太清楚。问题应该不是在这里。还有想请问一下,continue是不是一定要在break后面出现呢?
2016-09-26 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

请问为什么我这样会运行不下去?哪里出错了?

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