Python基础-----迭代器协议和For循环机制

迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代(只能往后走,不能往前退)

可迭代对象:遵循迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法)

for循环的本质:循环所有对象,全都是使用迭代器协议。

字符串、列表、元组、字典、集合、文件对象都不是可迭代对象,可以利用for循环,因为调用了他们的__iter__()方法,将他们变成可迭代对象。

例如:l = [1,2,3]

for i in l:   #该处相当于执行  l_iter = l.__iter__()  l_iter.__next__()并自动捕获   print(i)  #StopIteration异常

next()方法其实在调用 __next__()方法

原文地址:https://www.cnblogs.com/Meanwey/p/9741265.html

时间: 2024-10-06 09:59:58

Python基础-----迭代器协议和For循环机制的相关文章

Python全栈day18(迭代器协议和for循环工作机制)

一,什么是迭代和递归 递归和迭代都是循环的一种. 简单地说,递归是重复调用函数自身实现循环.迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值. 二,什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__i

*迭代器协议和for循环工作机制

迭代定义:每次迭代都依赖于上一次迭代 原文地址:https://www.cnblogs.com/newt/p/9005111.html

python基础知识--条件判断和循环

一.输入输出 python怎么来接收用户输入呢,使用input函数,python2中使用raw_input,接收的是一个字符串,输出呢,第一个程序已经写的使用print,代码入下: 1 name=input('Please enter your name:') #把接收到的值赋给name变量 2 print(name)#输出接收到的输入 input在接收输入的时候,是可以看到你输入的值的,如果是输入密码这样的呢,不想让别人看到你的密码,怎么办呢,就需要用到一个标准库,getpass,什么是标准库

python基础----迭代器、生成器、协程函数

一.什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象. 二,为什么要用迭代器 优点: 1:迭代器提供了一种不依赖于索引的取值方式,

python基础-------迭代器,生成器,协程函数

1,迭代器协议: 1.1 迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 1.2. 可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 1.3. 协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象 2,迭代器: 1.1:为什么要用迭代器: 1.2 优点:迭代器提

Python基础--if流程控制与循环

流程控制之if...else 既然我们编程的目的是为了控制计算机能够像人脑一样工作,那么人脑能做什么,就需要程序中有相应的机制去模拟.人脑无非是数学运算和逻辑运算,对于数学运算在上一节我们已经说过了.对于逻辑运算,即人根据外部条件的变化而做出不同的反映. ###Python定义了缩进的机制.使用流程控制或循环时需要在执行语句前面缩进4个空格. if...else格式: if 条件: 执行语句 else: 执行语句 例如:判断日期,如果是周日则打游戏,不是周日则上班睡觉. date='Monday

python基础之条件控制与循环

Python3 条件控制 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: age = 20 if age >= 18: print('your age is', age) print('adult') 根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么

python基础-迭代器和生成器

一.递归和迭代 1.递归:(问路示例) 递归算法是一种直接或者间接地调用自身算法的过程.在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解. 2.迭代:简单理解为更新换代( 儿子生孙子的故事) 二.迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter_

2015/9/5 Python基础(9):条件和循环

条件语句Python中的if语句如下: if expression: expr_true_suite 其中expression可以用布尔操作符and, or 和 not实现多重判断条件.如果一个复合语句的的代码块仅仅包含一行代码,那么它可以和前面的语句写在同一行: if expression: dosomething 但实际上,为了可读性,我们尽量不这么做else语句的使用: if expression: expr_true_suite else: expr_false_suite Python