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