前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >break/continue

break/continue

作者头像
皮大大
发布2021-03-02 15:02:35
3160
发布2021-03-02 15:02:35
举报
文章被收录于专栏:机器学习/数据可视化

Python中控制流主要有三种:ifbreakcontinue。本文中讲解一下后两种,同时讲解Python中缩进对代码的影响。

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

break

  • 一层循环遇到break条件满足,直接结束循环
  • if条件不满足的时候,执行sum+=i的操作
代码语言:javascript
复制
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对齐

i

j

是否满足break

是否输出

0

0

否(继续j的循环)

0

1

是(跳出j的循环)

1

0

否(继续j的循环)

1

1

否(继续j的循环)

1

2

是(跳出j的循环)

2

0

否(继续j的循环)

2

1

否(继续j的循环)

2

2

否(继续j的循环)

2

3

是(跳出j的循环)

3

0

否(继续j的循环)

3

1

否(继续j的循环)

3

2

否(继续j的循环)

3

3

否(继续j的循环)

是(输出最后的一次结果)

3

4

是(跳出j的循环)

结束

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

  • break只能控制离它最近的循环,此处为第二层循环
  • 每次当有i进来,只有第二层for循环执行完毕,输出打印print结果
  • print在第一个for循环里面,for循环了4次,所以输出4个结果
代码语言:javascript
复制
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)

i

j

是否满足break

是否输出

0

0

否(继续j)

0

1

是(跳出j)

是,输出当前(i,j)值(0,1)

1

0

否(继续j)

1

1

否(继续j)

1

2

是(跳出j)

是,输出当前(i,j)值(1,2)

2

0

否(继续j)

2

1

否(继续j)

2

2

否(继续j)

2

3

是(跳出j)

是,输出当前(i,j)值(2,3)

3

0

否(继续j)

3

1

否(继续j)

3

2

否(继续j)

3

3

否(整个循环结束)

是,输出当前(i,j)值(3,3)

情形3

代码语言:javascript
复制
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)

解释

i

j

是否满足break

是否输出

0

0

否(继续j)

0

1

是(结束j)

1

0

否(继续j)

1

1

否(继续j)

1

2

是(结束j)

2

0

否(继续j)

2

1

否(继续j)

2

2

否(继续j)

2

3

是(结束j)

3

0

否(继续j)

3

1

否(继续j)

3

2

否(继续j)

3

3

否(继续j)

3

4

是(结束j)


continue

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

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

sum   # 20
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-8,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • break
  • 缩进不同对代码输出影响
  • continue
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档