一、运行原理:
- for循环就是对容器进行迭代(从容器中逐个读取元素,直到结束)的过程。
- 只有具有__iter__方法(iteration迭代的简写,可返回一个迭代器)的对象才算可迭代对象。
- 而迭代器(iterator)可以实现__next__方法,每次按顺序返回一个值。
二、用代码模拟for循环的运行过程:
1、直接使用for循环打印range(1,3)
复制代码
1
2
3for i in range(1,3): print('这是通过for循环打印出来的i值:'+str(i))
2、使用分解代码模拟for循环打印range(1,3)
复制代码
1
2
3
4
5
6
7
8
9x=range(1,3) iterator=x.__iter__() i=iterator.__next__() print(i) i=iterator.__next__() print(i)
对2、的解读:
- 首先使用range函数创建一个整数列表,这是一个可迭代的对象。
- 然后对这个整数列表使用__iter__迭代方法(只有可迭代对象才有这个方法),再赋值给变量iterator。
- 再对iterator使用__next__方法,赋值给变量i。
- 在代码执行时,Python会先判断其是否为可迭代对象,若不是就直接报错,若是则调用__iter__方法,并返回一个迭代器。
- 不断调用迭代器的__next__方法,每次都会按顺序返回一个列表内的值。
- 到第三个__next__方法时,就会报StopIteration异常了,因为range(1,3)这个函数生成的列表中只有1、2这两个元素,没有第三个元素。
- 迭代结束后,就会抛出StopIteration异常,但在for循环中该异常会被Python自动处理,不会暴露出来。
最后
以上就是暴躁猎豹最近收集整理的关于for循环的工作原理详解-Python一、运行原理:二、用代码模拟for循环的运行过程:对2、的解读:的全部内容,更多相关for循环内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复