迭代器app
l=[1,2,3]; print(type(l)) l=iter(l); print(type(l)) for i in l: print(i); print(next(l)); print(next(l)); print(next(l));
def fab(max): n,a,b=0,0,1 L=[]; while n<max: #print(b); L.append(b); a,b=b,a+b; n=n+1; return L; l=fab(10) for i in l: print(i);
class Fab(object): def __init__(self,max): self.max=max; self.n,self.a,self.b=0,0,1; def __iter__(self): return self; def __next__(self): if self.n<self.max: r=self.b; self.a,self.b=self.b,self.a+self.b; self.n+=1; return r; raise StopIteration(); f=Fab(10); print(next(f)); print(next(f)); print(next(f)); print(next(f)); print(next(f));
yield生成器函數
def fab(max): n,a,b=0,0,1 while n<max: # print(b); yield b; a,b=b,a+b; n=n+1; l=fab(10); print(next(l)); print(next(l)); print(next(l)); print(next(l));
異常對象
a=10; b=input('請輸入被除數:') try:#可能產生異常的語句 b = int(b); c = a / b; print(c) except Exception:#捕獲異常並處理 print('發生錯誤!') print("程序正常結束..");
a=10; b=input('請輸入被除數:') try: b = int(b); c = a / b; print(c) except ZeroDivisionError as zero:#子類錯誤 print('被除數不能爲0..異常信息:',zero) except ValueError as v:#子類錯誤 print('轉換數字 出錯 請輸入數字.異常信息:',v) except Exception:#父類錯誤 print('發生錯誤!') else:#沒有異常纔會執行的代碼 print("程序正常結束..")
a=10; b=input('請輸入被除數:') try: b = int(b); c = a / b; print(c) except ZeroDivisionError as zero:#子類錯誤 print('被除數不能爲0..異常信息:',zero) except ValueError as v:#子類錯誤 print('轉換數字 出錯 請輸入數字.異常信息:',v) except Exception:#父類錯誤 print('發生錯誤!') else:#沒有異常纔會執行的代碼 print("程序正常結束.."); finally: try: del a,b,c except Exception as e: print(e) print("finally:快兒 釋放資源"); print('程序其餘代碼');