这个python语句为什么不执行?

a=1
while a:
    if a==2:
        continue
    print(a)
    a=a+1
    if a>5:
        a=False

图片描述

只输出1,然后程序也不退出,不知道是怎么回事,不是应该输出1,3,4,5吗?

阅读 6.3k
4 个回答

因为在第一个 if 语句没对 a 变量进行任何操作就继续了,所以 a 变成 2 之后就一直是 2.

你应该把 a = a + 1 这句移到 while 下面。

continue是忽略剩下的代码,从循环开始的地方继续运行

第一次跑 while 里的代码的时候 a 值为1,然后第一个 if 里的 continue 不执行,继而执行下面的 a = a + 1。接着下一个循环里一开始就符合了第一个 if a == 2 的条件,所以就一直 continue 了。因为从那个时候开始 a 的值始终为 2。下面的 a = a + 1 就一直没执行,只执行了第一次。

把 a = a + 1 上移到第一个 if 前就好了。建议写成 a += 1

ps: 能不能在操作符两端加个空格..格式看着好憋屈

新手上路,请多包涵

在if里加a+=1

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题