1 1、正常循环一个序列: 2 for i in [1,2,3,4,5,6,7,8,9] 3 pass 4 ..... 5 6 2、用迭代器循环一个序列: 7 #首先得到Iterator对象: 8 it = iter([1,2,3,4,5]) 9 10 #循环对象: 11 while True: 12 try: 13 #得到下一个值: 14 x = next(it) 15 except StopIteration: 16 #遇到StopIteration就退出循环: 17 break 18 19 20 #注意:上下两个彻底等价
1 def myrange(arg): 2 start = 0 3 while True: 4 if start > arg: 5 return 6 yield start 7 start += 1 8 ret = myrange(3) 9 r = ret.__next__() #进入函数,找到yield,获取yield后面的数据,每运行一次,生成器就会往下执行一个数值: 10 print(r) 11 r = ret.__next__() 12 print(r) 13 r = ret.__next__() 14 print(r) 15 r = ret.__next__() 16 print(r)
例如 一、一个列表,而后用for进行遍币,其实就是执行了r = ret.__next__(); 二、当迭代到最后一个值时,按理说取完后会报错的,可是因为封装到foread