Python札记41_break 和 continue语句

浏览: 1011

本篇札记是自己在学习《利用Python进行数据分析》一书中看到了breakcontinue的例子,觉得有必要理解下Python中的for循环控制语句。在Python中控制流主要有三种:ifbreakcontinue。本文中讲解一下后两种,同时讲解Python中缩进对代码的影响。

  • break
  • 缩进不同对代码输出影响
  • continue

break

  • 一层循环遇到break条件满足,直接结束循环
  • if条件不满足的时候,执行sum+=i的操作
list2 = [1,2,3,5,8,4,9]
sum = 0
for i in list2:
if i == 8: # 满足条件终止整个循环,后面的也不会执行,i=8循环结束
break
sum += i

sum # 11=1+2+3+5
  • 两层循环,break只能终止内层循环,外层循环继续
  • 缩进不同,代码块不同,数据结构完全不同,对输出结果造成影响,看下面的三种情形:

缩进不同对代码输出影响

情形1:print和第一个for对齐

  • break控制内层循环即第二层
  • 代码是按照顺序依次执行的
  • print不在循环体里面,只有等最外层的for全部执行完毕才会执行


    image.png

for i in range(4):
for j in range(4):
if j > i:
break

print((i, j)) # 最外层的for循环结束才会执行print语句,与for对齐

# 结果
(3, 3)

ij是否满足break是否输出
00否(继续j的循环)否
01是(跳出j的循环)否
10否(继续j的循环)否
11否(继续j的循环)否
12是(跳出j的循环)否
20否(继续j的循环)否
21否(继续j的循环)否
22否(继续j的循环)否
23是(跳出j的循环)否
30否(继续j的循环)否
31否(继续j的循环)否
32否(继续j的循环)否
33否(继续j的循环)是(输出最后的一次结果)
34是(跳出j的循环)结束

情形2:print和第二层for对齐

  • break只能控制离它最近的循环,此处为第二层循环
  • 每次当有i进来,只有第二层for循环执行完毕,输出打印print结果
  • print在第一个for循环里面,for循环了4次,所以输出4个结果
for i in range(4):
for j in range(4):
if j > i:
break

print((i, j))

# 结果
(0, 1)
(1, 2)
(2, 3)
(3, 3)

ij是否满足break是否输出
00否(继续j)否
01是(跳出j)是,输出当前(i,j)值(0,1)
10否(继续j)否
11否(继续j)否
12是(跳出j)是,输出当前(i,j)值(1,2)
20否(继续j)否
21否(继续j)否
22否(继续j)否
23是(跳出j)是,输出当前(i,j)值(2,3)
30否(继续j)否
31否(继续j)否
32否(继续j)否
33否(整个循环结束)是,输出当前(i,j)值(3,3)

情形3

for i in range(4):
for j in range(4):
if j > i:
break # break只能终止内层j循环;不满足if条件则执行print语句
print((i, j))

# 结果
(0, 0)
(1, 0)
(1, 1)
(2, 0)
(2, 1)
(2, 2)
(3, 0)
(3, 1)
(3, 2)
(3, 3)

解释

ij是否满足break是否输出
00否(继续j)是
01是(结束j)是
10否(继续j)是
11否(继续j)是
12是(结束j)是
20否(继续j)是
21否(继续j)是
22否(继续j)是
23是(结束j)是
30否(继续j)是
31否(继续j)是
32否(继续j)是
33否(继续j)是
34是(结束j)否


continue

continue表示:满足当前条件,结束本次循环,继续下次循环;上面的break是直接终止后面的循环。

list1 = [1, 2, 3, None, 6, None, 8]
sum = 0
for i in list1:
if i == None:
continue # 满足条件表示跳出当前循环,后面的循环继续执行
sum += i

sum # 20

小礼物走一走,来简书关注我

赞赏支持

 尤尔小屋© 著作权归作者所有

96皮皮大 22d8d123 271c 4d80 9c59 6990844a9e37 

写了 86891 字,被 26 人关注,获得了 270 个喜欢

程序员/机器学习/量化交易/村上、东野迷/业余马拉松跑者 志之所趋,无远弗届,穷山距海,不能限也

喜欢

 2

推荐 0
本文由 皮大大 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册