求问,python初学
while True:
while True:
break
print(1)
print(2)
break
print(3)
因为 break 只能跳出一层循环
第一个break不是已经跳出循环了,为什么不打印1,第二个break为什么就不会跳出循环了,为什么还可以打印2?
好纠结 分析如下图所示(超详细):
注意看缩进,python是很注意缩进的一门编程语言
while True:# 第1层
while True:# 第2层
break # 看缩进,对应第2层
print(1)
print(2)
break # 看缩进,对应第1层
print(3) 程序执行到第一个break的时候,break所在的当前这一层的循环被终结了,同一层循环的print(1)语句在break后面,就被跳过了。而一个break只能管一层循环,所以外面这一层循环还在执行。
下一句是print(2),然后再遇到break,跳出当前这一层循环。所以先打印再跳出。
这种逻辑并非难以理解的,主要思路不能乱,否则后面复杂度更大的代码就会错漏百出了。 肖-肖 发表于 2021-5-11 15:59
分析如下图所示(超详细):
非常感谢大佬的回答,我还是有个地方不是很清楚,就是第二个while True的循环体不应该只有break吗,为什么还有print(1),他不是顺序执行的吗?
谢谢大佬了 笨鸟学飞 发表于 2021-5-11 16:08
注意看缩进,python是很注意缩进的一门编程语言
while True:# 第1层
非常感谢你的回答,可是我把print(1)的缩进设置成和print(2)一样了,应该最后打印的是1 2 3,为什么最后打印的只有3?
Hoiste 发表于 2021-5-11 16:11
程序执行到第一个break的时候,break所在的当前这一层的循环被终结了,同一层循环的print(1)语句在break后 ...
非常感谢你的回答,print(1)为什么是和break是同一个循环的,不是顺序执行吗?我是初学,可能有地方理解不对,希望大佬可以指导一下{:10_277:} 金耳钩 发表于 2021-5-11 16:37
非常感谢你的回答,print(1)为什么是和break是同一个循环的,不是顺序执行吗?我是初学,可能有地方理 ...
是这样的,break直接就跳出循环了,循环里break后面的代码就不会执行了 本帖最后由 肖-肖 于 2021-5-11 17:13 编辑
金耳钩 发表于 2021-5-11 16:20
非常感谢大佬的回答,我还是有个地方不是很清楚,就是第二个while True的循环体不应该只有break吗,为什 ...
print(1)为什么是和break是同一个循环的?
因为它们的缩进是一样的,所以是那两句再内部的while循环中。
不是顺序执行吗?
是顺序执行,但不是break了嘛,跳出去了,也就是后边的代码print(1)没有执行到,看我画的箭头,亲 金耳钩 发表于 2021-5-11 16:37
非常感谢你的回答,print(1)为什么是和break是同一个循环的,不是顺序执行吗?我是初学,可能有地方理 ...
while True: #往下[循环0]
while True: #往下[循环1]
break #跳出循环体-- [循环1]
print(1) # |
print(2) # <--------然后继续往下
break #跳出循环体--|[循环0]
print(3) # <---------|
画图~~ 柿子饼同学 发表于 2021-5-11 17:12
画图~~
非常感谢你的回答,我整明白了 金耳钩 发表于 2021-5-11 17:15
非常感谢你的回答,我整明白了
{:9_227:}
页:
[1]