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

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

时间2025-09-19 02:55:53分类IT科技浏览4998
导读:在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
em什么标签(emlog标签插件:提升博客内容管理效率的利器) 网站seo标题优化技巧(如何撰写优秀的SEO文章,提升网站排名)