为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
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)

       https://img1.sycdn.imooc.com//63273d54000196b509440181.jpg


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

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

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

https://img1.sycdn.imooc.com//63273d670001f1a804590354.jpg

EG:在一行内打印

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

https://img1.sycdn.imooc.com//63273d780001256604890187.jpg

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')

https://img1.sycdn.imooc.com//63273d8b000169c204370357.jpg

当我们所有列表的元素被打印出来后,最末尾的时候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。

https://img1.sycdn.imooc.com//63273da20001eea905140181.jpg

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

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

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

https://img1.sycdn.imooc.com//63273db20001330804460398.jpg

# 之前当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里面的语句。

https://img1.sycdn.imooc.com//63273dc400016ee404650311.jpg

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

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

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

https://img1.sycdn.imooc.com//63273dd50001274e03530383.jpg

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')

https://img1.sycdn.imooc.com//63273de60001deff07770465.jpg

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


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消