手记

【九月打卡】第14天Python第七章包、模块、函数与变量作用域

课程名称:全面系统Python3.8入门+进阶(程序员必备第二语言)

课程章节:7-2 for与for-else循环

主讲老师:7七月

课程内容:

今天学习的内容包括:

for与for-else循环

课程收获:

for循环和while循环在使用场景上有什么不同。

for 主要是用来遍历/循环,序列或者集合、字典。

# for循环格式
for target_list in expression_list
    pass

EG:依次打印列表内元素。

a = ['apple', 'orange', 'banana', 'grape']
for x in a:
    print(x)

       


代码块内还可以再嵌套代码块

EG:打印子列表里面的元素

a = [['apple', 'orange', 'banana', 'grape'], (1,2,3)]
for x in a:
    for y in x:
        print(y)

EG:在一行内打印

a = [['apple', 'orange', 'banana', 'grape'], (1,2,3)]
for x in a:
    for y in x:
        print(y,end='')

EG:for和else搭配使用

a = [['apple', 'orange', 'banana', 'grape'], (1,2,3)]
for x in a:
    for y in x:
        print(y)
else:
    print('fruit is gone')

当我们所有列表的元素被打印出来后,最末尾的时候fruit is gone被打印出来。

不同于while else循环,当列表里面的元素都被遍历完了之后,这个else就会被执行。

如果我想强行终止for循环要怎么做?

a = [1,2,3]

for x in a:
    if x == 2:
        break
    print(x)
# 强行终止当前循环,并且之后循环不在执行

这段代码执行后会不会打印3,同时2会不会被打印出来?

答案是不会,一旦for循环遇到break语句之后,这个循环就立刻结束了。他不会去执行break后面的代码,包括下次的循环,下下次的循环都不会去执行。所以2不会被打印,这段代码的执行结果只会显示1。

在某些情况下,我只想跳过X==2。依然想把x==3打印出来。

# 在某些情况下,我只想跳过X==2。依然想把x==3打印出来
a = [1,2,3]

for x in a:
    if x == 2:
        continue
    print(x)

# 之前当for循环值班完之后会执行else内print,现在加入了break后,else还会执行吗
a = [1,2,3]

for x in a:
    if x == 2:
        continue
    print(x)
else:
    print('EOF')

如果你的for循环不是正常结束的,就是不是让他遍历完之后结束的,而是通过强制的break打断的,是不会执行else里面的语句。

使用continue是会执行else里面的语句。

# 使用continue 会执行else之后的语句
a = [1,2,3]

for x in a:
    if x == 2:
        continue
    print(x)
else:
    print('EOF')

EG:

a = [['apple', 'orange', 'banana', 'grape'], (1,2,3)]
for x in a:
    for y in x:
        if y == 'orange':
            break
        print(y)
else:
    print('fruit is gone')

为什么我们加入了break,上面的代码还会打印出else语句?我们从orange开始break了,为什么后面的1,2,3会被打印出来


0人推荐
随时随地看视频
慕课网APP