'''
生成器其實就是自定義迭代器
'''# 定義階段就是餓乙個普通函式
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...