生成器 - 迭代器

文章详细介绍了Python中的迭代器概念,包括可迭代对象和迭代器对象的定义,强调了迭代器在不依赖索引取值中的作用。生成器是含有yield关键字的函数,能在运行时生成迭代值。yield与return的关键字区别在于函数的暂停与恢复。同时,文章还讨论了for循环的内部原理和异常处理,特别是如何捕获和处理StopIteration等异常。
摘要由CSDN通过智能技术生成

目录

迭代器

        可迭代对象

        迭代器

生成器

        yield传值

        yield和return的对比

for循环内部原理

扑捉异常

        什么是异常

        异常的种类

        如何扑捉异常

        万能异常


迭代器

迭代器分为迭代器对象和可迭代对象,迭代就是每一次的结果都必须依赖于上一次的结果,能够通过for循环进行迭代操作,也能够通过__next__方法进行迭代操作

可迭代对象

内置有__iter__方法的对象都是可迭代对象(内置的意思是python自带的,解释器中已经存在的,外面可以直接使用的

可迭代对象有哪些:

1.所有序列类型:如list,str和tuple

2.非序列类型:dict,set,文件对象

3.实现__iter__()方法的任意对象

迭代器

迭代器对象:

1.实现了迭代器协议的对象,就是一个迭代器(就是一个对象需要提供next方法,该方法要么返回迭代对象中的下一项,要么就抛出Stoplteration异常,迭代终止)

2. 所有的可迭代对象,都可以通过内置函数iter()转换为迭代器

3.迭代器对象能够通过内置函数next进行迭代操作

注意:
迭代给我们提供了一种不依赖索引取值的方法

生成器

什么是生成器,就是在定义函数的时候,函数内部有yield关键字就是生成器,但是在没调用之前它就是一个普通的函数,调用后才变成生成器

yield传值

yield和return的对比

yield:

1.可以有返回值

2.函数遇到yield不会结束,只会暂停,等待下一次运行时从暂停处继续往下执行

3.yield关键字会把函数变成生成器,支持迭代取值

return:

1.可以有返回值

2.遇到return关键字直接结束函数运行

for循环内部原理

for循环内部就是由__iter__和__next__组成,只是pycharm软件帮我们处理了

 在一些不能或不方便使用for循环的情况下,就可以用__iter__和__next__来取值,不过要自己做好异常处理措施,异常处理措施和怎么如何扑捉异常如下

扑捉异常

什么是异常

就是错误发生时发出的信号,如果信号不处理,后续的代码就不能正常执行

异常的种类

1,语法错误:这是不被允许的,如果出现要立即改正,不然代码不能正常运行

2,逻辑错误:是可以允许的,但是我们写逻辑的时候一定要尽量避免逻辑错误

如何扑捉异常

可以把书写的代码监测起来;但是,监测的代码越少越好

万能异常

如果不用万能异常,此段代码就会因为迭代原因报错,影响后续的代码的运行,使用万能异常后,不会报错,代码正常运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值