目录
迭代器
1、可迭代对象
2、迭代器取值方法
3、怎么区分迭代器和迭代对象
生成器
1、yield
迭代器
百科:迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。
1、可迭代对象
1、list tuple str
2、if for while
2、迭代器取值方法
①
代码如下:
a=[0, 2, 4, 6, 8] index=0 while index运行结果:
②
代码如下:
a=[0, 2, 4, 6, 8] b=iter(a) #list_iterator 列表_迭代 print(b) try: while True: print(next(b)) except: print("错误")运行结果:
③
代码如下:
a=[0, 2, 4, 6, 8] b=iter(a) #list_iterator 列表_迭代 print(next(b)) #可以用next函数去迭代器中取值 print(b.__next__())#__next__魔法方法 print(next(b)) print(b.__next__())运行结果:
3、怎么区分迭代器和迭代对象
代码如下:
#迭代器有iter和next魔法方法 #迭代对象只有iter print(dir(a)) print(dir(b))生成器
1、yield
①
代码如下:
def func():#生成器可以生成几次,生成器生成的次数取决于yield执行的次数 yield 1#同return一样会返回一个结果,但是函数不会终止 yield 2 yield 3 a=func() print(next(a)) print(next(a)) print(next(a))运行结果:
②计算1-7的乘积
代码如下:
def func(): cj=1 sums=0 for i in range(1,7): cj *= i yield cj f1=func() print(next(f1)) print(next(f1)) print(next(f1)) print(next(f1)) print(next(f1)) print(next(f1))运行结果:
③简单加法计算器
代码如下:
def func1(): sums=0 while True: num=int(input("输入:")) sums+=num yield sums ff1=func1() while True: print("求和的结果是:",next(ff1))运行结果:



