第九節 生成器

2022-08-25 18:00:40 字數 631 閱讀 6625

def create_num(all_num):

a, b = 0, 1

current_num = 0

while current_num <= all_num:

yield a # 如果乙個函式中有yield語句,那麼這個就不再是乙個函式,而是乙個生成器模板

a, b = b, a+b

current_num += 1

'''生成器是一種特殊的迭代器

'''# 則在呼叫呼叫create_num時,不再是呼叫函式,而是在建立乙個生成器模板

a = create_num(10) #不會像函式一樣執行,而是生成資料的乙個類,與list等比較,list是實在的資料,而create_num()是生成資料的物件

print(create_num(10))

# for x in a: #開始迴圈第乙個,**執行到yield語言暫停,將a取出,然後再次回到暫停的地方繼續往下執行,不是create_num整個執行結束將儲存的a值一次性當作乙個迭代器

# print(x)

b = next(a)

print(b)

c = next(a)

print(c) # 取數原理跟用for迴圈一樣

第九節除錯

除錯 第一種方法簡單直接粗暴有效,就是用print 把可能有問題的變數列印出來看看 斷言凡是用print 來輔助檢視的地方,都可以用斷言 assert 來替代 assert的意思是,表示式n 0應該是true,否則,根據程式執行的邏輯,後面的 肯定會出錯。如果斷言失敗,assert語句本身就會丟擲a...

java筆記第九節

第九節 一 設計模式 相當於戰術 入格 看 可用性,美觀性 的由23種。二 架構模式 相當於戰略 目前只有兩種 1.b s 瀏覽器 伺服器,邏輯 堆放到伺服器上 方便公升級,修改,伺服器任務重 b s網頁上的內容是臨時從伺服器上下下來的 2.c s 客戶 伺服器,邏輯 堆放到客戶端上 不適合管理軟體...

第九節 開閉原則

1 開閉原則,對擴充套件是開放的,對修改是關閉的。2 復用,模組復用和系統復用,其中模組部分復用或將整個專案程式設計可復用的。3 內部模組化時,之中有不同的邏輯。將 分為業務邏輯層和資料儲存層,將 模組化成兩個層級。像 對選單的處理,選單功能實現為業務邏輯 像 選單資料儲存用鍊錶,也可以以後改為雜湊...