for 语句就是触发这个迭代器的功能呢
for i in "chenshiba":print(i)--------------------------chenshiba
字典_迭代
linsk ={"name": "张三", "age":20, "sex":"男", "color":"red"}for each in linsk:print("%s ---> %s" % (each, linsk[each]))-------------------name ---> 张三age ---> 20sex ---> 男color ---> red
iter() next()迭代器
string = "chenshiba"ti = iter(string)print(next(ti))print(next(ti))print(next(ti))print(next(ti))------------------- # 不会在往下执行,, 如果后面没有了数据就会提示报错 StopIterationchen
while True:try:print(next(ti))except:breakwhile True:try:print(next(ti))except StopIteration:break-------------------chenshiba
-iter() -__iter()表示魔法方法的迭代器
class Fibs:def __init__(self, n=20):self.a = 0self.b =1self.n = ndef __iter__(self):return selfdef __next__(self):self.a, self.b = self.b, self.a + self.bif self.a > self.n:raise StopIterationreturn self.af1 = Fibs()for each in f1:if each <= 20:print(each)else:break-----------------------------11235813
升级版 , 可自定义参数
class Fibs:def __init__(self, n=20):self.a = 0self.b =1self.n = ndef __iter__(self):return selfdef __next__(self):self.a, self.b = self.b, self.a + self.bif self.a > self.n:raise StopIterationreturn self.af1 = Fibs(100)for each in f1:print(each)-------------------------1123581321345589
