首页IT科技python中的for循环和while循环(python中for循环的底层实现)

python中的for循环和while循环(python中for循环的底层实现)

时间2025-06-13 23:23:27分类IT科技浏览3883
导读:在python中,存在2种循环方式:for循环和while循环。...

在python中             ,存在2种循环方式:for循环和while循环            。

while循环的实现很简单                  , 其本质就是一个条件语句      ,自定义条件          ,当条件满足的时候                   ,不断执行while代码块                   。

但是for循环         ,究竟是怎么回事呢?说到for循环      ,那么就不能不讲到迭代了      。

迭代

python中迭代对象分2种:迭代器对象(Iterator)             、可迭代对象(Iterable)         。

tips:如何判断一个对象是迭代器对象还是可迭代对象?

fromcollectionsimportIterable,Iterator

isinstance(object                   , class)            ,第一个参数为对象   ,第二个参数为类名;返回值为True                   ,即对象为:

相关推荐:《Python视频教程》

1.可迭代对象

很多python的数据类型都是可迭代对象:列表                  、字典      、元组          、字符串等                   。

a = [1, 2, 3]

isinstance(a, Iterable) # True

注意:可迭代对象               ,并不是迭代器对象

2.迭代器对象

迭代器对象依赖iter(args)方法来实现,参数args必须是一个可迭代对象          。

a=[1,2,3] b=iter(a) isinstance(b,Iterator)#True isinstance(b,Iterable)#True

由此可以看出                ,迭代器对象                  ,同时也是可迭代对象      。

那么   ,这2个对象             ,到底和for循环的关系在哪里呢?

for循环

我们都知道                  ,迭代器对象      ,实现了__next__()方法          ,可以不断调用该方法                   ,返回迭代器对象的每个元素

for循环的对象         ,必须是可迭代对象                  。而在底层      ,所有的可迭代对象均内置了__iter__()方法                   ,返回值为迭代器对象             。

此时            ,我们便明了了   ,for循环本质上调用了可迭代对象的__iter__()方法                   ,得到了该对象对应的迭代器对象               ,然后调用__next__()方法,得到对象中的每一个元素   。直到StopIteration异常                ,代表迭代器中已无下一个元素                  ,for循环自动处理该异常   ,跳出循环                  。

相关推荐:

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
spring文件服务器(SpringSource新应用服务器发布 摒弃Java EE) linux的大于号怎么用(Linux列举大于指定大小文件的所在目录的方法)