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

while的理解

L=[1,2,3,4]

for a in L:

    while a<=4:

        print a

这样运行下来为什么一直显示的是1,而且无休止进行下去

正在回答

4 回答

迭代只是for a in L:      此时首先a取1   然后按照你的代码 进入下一层,当a<=4时输出a,执行后返回的仍然是while a<=4:这里

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

qq_苏格拉没有底_14 提问者

那这里选出来的元素为什么不进行迭代?输出了1之后,运行下去不应该接下来运行第二个元素2吗?
2017-07-11 回复 有任何疑惑可以回复我~
#2

qq_苏格拉没有底_14 提问者

非常感谢!
2017-07-11 回复 有任何疑惑可以回复我~

第一次执行

while a<=4:

        print a

用的a是1

然后又没有对a进行处理

所以不断在判断1<=4,然后不断输出1

完全没有跳出循环的语句

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

qq_苏格拉没有底_14 提问者

那如果直接print a,也没有对a进行处理,美神出来的是1,2,3,4,二不是一直输出a那?
2017-07-11 回复 有任何疑惑可以回复我~
#2

qq_苏格拉没有底_14 提问者

L=[1,2,3,4] for a in L: print a 这样输出的就是正常的1,2,3,4四个元素 但是加上了一句while语句怎么就不可以了那? L=[1,2,3,4] for a in L: while a<4: print a 这样就一直循环出来的是1
2017-07-11 回复 有任何疑惑可以回复我~
#3

LCpeople 回复 qq_苏格拉没有底_14 提问者

和 for 循环不同的另一种循环是 while 循环,while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束
2017-07-16 回复 有任何疑惑可以回复我~

没有循环退出的条件就会一直死循环。我觉得可以把while a<=4:这个语句删掉,直接就是for a in L: print a 。

这样的执行结果就可以遍历出来1,2,3,4了

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

qq_苏格拉没有底_14 提问者

我是想在所有的元素中挑选出符合条件的元素,但是这里我又不想用if来判断,我想知道while到底是怎样工作的
2017-07-11 回复 有任何疑惑可以回复我~

应该把while换成if

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

举报

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

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

进入课程

while的理解

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