04_07、迭代器

一、可迭代对象

  1、迭代

    每次更新换代,都依赖于上一次的结果

  2、可迭代对象

    凡是内置有.__iter__()方法的都是可迭代对象
    内置的意思是可以通过点(.)出来

    其中:

      整型、浮点型、布尔 不是可迭代对象

      字符串、列表、字典、元组、集合、文件  是可迭代对象

  3、查看是否是可迭代对象的方法

    查看数据类型是否是可迭代对象

      print(c.__iter__())
      print(h.__iter__())
      print(d.__iter__())

    迭代器(iter)的简便写法

      print(iter(c))
      print(iter(h))
      print(iter(d))

    补充:所有__开头的方法都有一个简单的方法

      函数名()

      eg:

        c.__len__()的简单写法就是len(c)

 

二、迭代器对象

  1、什么是迭代器对象

    内置有__iter__(),并且也要拥有__next__方法的才是迭代器对象

  2、如何生成迭代器对象

    让可迭代对象调用__next__()

复制代码
c = 'hello'  #
d = [1, 2, 3, 4]  #
f = (1, 2, 3, 4)  #
h = {'username': 'ly'}  #
i = {1, 2, 3, 4}  #

# 文件对象本省就是可迭代对象和迭代器对象
k = open('a.txt', 'w', encoding='utf-8')  #

res = c.__iter__()
res.__next__()  # 迭代器对象

res2 = d.__iter__()
res2.__next__()  # 迭代器对象
复制代码

  3、迭代器对象的作用

    提供了一种不依赖于索引取值的方式

    通过__next__遍历每一个元素

  4、迭代器的两个易错点  

    1:对应一个可迭代对象,可以连续多次__iter__(),得到的结果还是本身

 

    2:可迭代对象在不被赋值的情况下,永远为第一个元素

 

三、for循环内部原理

复制代码
l = [1, 2, 3, 4, 5]

'''
python中有两个循环,while循环和for循环
如果用while循环 + __next__打印出l中的每一个元素
会报错
因为迭代器对象超出范围

res = l.__iter__()
while True:
    print(res.__next__())
'''
# while循环报错解决方式

res = l.__iter__()
while True:
    # 检测的代码
    print(res.__next__())
    # 如果有错,处理掉

'''
理论上用for循环打印也会因为相同原因报错
for i in l:
    print(i)
之所以完美运行的原因就在于,for内部自定帮你把异常处理了
 
    for循环的原理:
        1. 先把in后面的可迭代对象__iter__()
        2. 调用__next__取值
        3. 当值取完之后,for内部自定帮你把异常处理了

'''
复制代码

 

四、异常捕获

  1、程序中什么是异常

    异常就是错误发生的信号,如果不对该信号做处理,那么,之后的代码都不能正常执行

  2、异常的分类

    语法错误

      如:print(123
        不允许出现,出现之后,立马修改

    逻辑错误

      如:l = [1, 2, 3]
        print(l[5])

        逻辑错误允许出现
        但是,一般情况,逻辑错误要修改到尽量完美

  3、异常的三大部分

 

  4、如何解决异常原因

 

 

 

posted @   三三得九86  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示