第九章 生成器物件

2022-09-09 06:15:06 字數 2281 閱讀 2375

'''

生成器其實就是自定義迭代器

'''# 定義階段就是餓乙個普通函式

def my_ge():

print('first')

yield 123,222,333

print('second')

# yield 456,444,555

"""當函式體內含有yield關鍵字 那麼在第一次呼叫函式的時候

並不會執行函式體** 而是將函式變成了生成器(迭代器)

"""# 呼叫函式:不執行函式體** 而是轉換為生成器(迭代器)

# res = my_ge()

# ret = res.__next__() # 每執行乙個__next__**往下執行到yield停止 返回後面的資料

# print(ret)

# ret = res.__next__() # 再次執行__next__接著上次停止的地方繼續往後 遇到yield再停止

# print(ret)

def my_range(start, stop=none, step=1):

if not stop:

stop = start

start = 0

while start < stop:

yield start

start += step

# res = my_range(10)

# for i in res:

# print(i)

# res = my_range(1,10)

# for i in res:

# print(i)

res = my_range(1,10,3)

for i in res:

print(i)

def eat(name):

print('%s 準備乾飯!!!' % name)

while true:

food = yield

print('%s 正在吃%s' % (name,food))

res = eat('jason') # 並不會執行**,而是轉換成生成器

res.__next__()

res.send('肉包子')

res.send('蓋澆飯')

yield

1.可以返回值(支援多個並且組成元組)

2.函式體**遇到yield不會結束而是『停住』

3.yield可以將函式變成生成器 並且還支援外界傳值

return

1.可以返回值(支援多個並且組織成元組)

2.函式體**遇到return直接結束

l = [11, 22, 33, 44, 55, 66, 77, 88, 99]

# res = [i+1 for i in l if i!=44]

# print(res)

# res1 = (i+1 for i in l if i!=44)

"""生成器表示式內部的**只有在迭代取值的時候才會執行

"""# print(res1.__next__())

# print(res1.__next__())

# print(res1.__next__())

""" 迭代器物件 生成器物件 我們都可以看成是"工廠"

只有當我們所要資料的時候工廠才會加工出"資料"

上述方式就是為了節省空間

"""# 求和

def add(n, i):

return n + i

# 呼叫之前是函式 呼叫之後是生成器

def test():

for i in range(4):

yield i

g = test() # 初始化生成器物件

for n in [1, 10]:

g = (add(n, i) for i in g)

"""第一次for迴圈

g = (add(n, i) for i in g)

第二次for迴圈

g = (add(10, i) for i in (add(10, i) for i in g))

"""res = list(g)

print(res)

#a. res=[10,11,12,13]

#b. res=[11,12,13,14]

#c. res=[20,21,22,23]

#d. res=[21,22,23,24]

第九章(筆記)

轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...

第九章作業

班級 0401304 學號 2013211526 姓名 鄧小俊 2.身份驗證 依據使用者所提供的身份資訊,來進行登入驗證,可以再細分為使用者是否可以登入sql sever 使用者是否可以登入到指定的目標資料庫等。授權 已通過身份驗證的使用者,檢查其所被賦予的許可權,是否可以訪問或者執行目標的物件 3...

第九章 引用

引用擁有指標的所有功能,只是語法更加的簡單 1 引用就是別名,變數的另外乙個名字,變數和別名它們的位址是一樣的,操作別名就是操作變數 2 引用就是別名常量,一旦引用被初始化就不能再改變了 可以理解為指標常量,指向的值不能改變,能改變的只是它的該位址處的值 3 引用物件huamn mike human...