Python札记41_break 和 continue语句

本篇札记是自己在学习《利用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)
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个结果
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

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是直接终止后面的循环。

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

sum   # 20

你可能感兴趣的:(Python札记41_break 和 continue语句)