# for 语句用法 ## 基础 for i in range(10): continue # 继续执行 break # 终端所有的 for, (else也不执行) print(i) else: # else可以不需要 print("输出了前10个自然数") ## 自定义能循环的结构 class myrange(object): """ 做一个从1开始计数的range """ def __init__(self, n): self.max = n self.i = 0 def __iter__(self): """ 这个函数只会初始化一遍 """ while self.i < self.max: # 一直输出知道输出为None self.i += 1 yield self.i while True: # 一直输出,除非遇到了特殊情况 self.i += 1 if self.i > self.max: raise StopIteration else: yield self.i class A(object): def f(self, x): for i in range(x): yield i raise StopIteration def __iter__(self): return self.f(10) b = A() for i in b.f(5): print(i) print(list(b.f(6)))