for循环的工作原理

可迭代对象,有__iter__方法
迭代器(iterator)实现__next__方法和__iter__方法,每次按顺序返回一个值

直接使用for循环打印range(1,3)

for i in range(1,3):
    print('这是通过for循环打印出来的i值:'+str(i))

  

使用分解代码模拟for循环打印range(1,3)

x = range(1, 3)  # 用range函数创建一个整数列表,可迭代对象
iterator = x.__iter__()  # 对列表使用__iter__迭代方法,赋值给变量iterator

i = iterator.__next__()  # 对iterator使用__next__方法,赋值给变量i
print(i)  # 1

i = iterator.__next__()  # 不断调用迭代器的__next__方法,每次都会按顺序返回一个列表内的值
print(i)  # 2

i = iterator.__next__()  # StopIteration 迭代结束  在for循环中该异常会被Python自动处理,不会暴露出来

  

 

while True:
    try:
        # 然后调用对象的 __next__ 方法,不断返回元素
        value = next(x)
        print(value)
    # 如果迭代完成,则捕获异常即可
    except StopIteration:
        break

  

posted @ 2023-06-19 17:02  sangern  阅读(31)  评论(0编辑  收藏  举报