Day10總結

1.變量的作用域

變量在程序中能夠使用的范圍

a.全局變量
聲明在函數(shù)或者類的外部的變量都是全局變量
作用域是從變量聲明開始到整個py文件結束任何位置

b.局部變量
聲明在函數(shù)或者類的內部的變量都是局部變量
作用域是從變量聲明開始到函數(shù)結束

2.global 關鍵字

在函數(shù)中聲明一個全局變量徐绑,在外部使用時必須先調用函數(shù)
語法:
global 變量名
變量名 = 值

3.nonlocal 關鍵字

當需要在局部的局部中修改局部變量的值,就使用nonlocal
語法:
nonlocal 變量名
變量名 = 值

2.函數(shù)作為變量

python中聲明函數(shù)其實就是聲明一個類型是function的變量,函數(shù)名其實就是變量名

函數(shù)名作為變量除了用來調用函數(shù)獲取返回值鸠窗,還可以做普通變量能做的
a = lambda x: x * x

print(type(a))

將函數(shù)1作為實參,傳遞給函數(shù)2遵馆;函數(shù)2就是一個高價函數(shù)(實參高階函數(shù))
返回值是函數(shù)的函數(shù)数尿,也叫高階函數(shù)(返回值高階函數(shù))

sort函數(shù)
def sort(key=None, reverse=False)

key - 確定排序的時候以什么值為標準來排序(默認以列表元素的大小為標準)
需要傳一個函數(shù),函數(shù)需要一個參數(shù)和一個返回值商佛。這兒的參數(shù)是列表的元素

reverse - False 升序 Ture 降序
list1 = [{1: 2}, {1: 3}, {1: 1}]
list1.sort(key=lambda x: x[1])
print(list1)

def opration1(opration, *args):
if opration == '-':
result = args[0]
for x in range(1, len(args)):
result -= args[x]
return result

print(opration1('-', 1, 2, 3))

運行:

3.迭代器

1.什么是迭代器(iter)
迭代器是Python中容器類的數(shù)據(jù)類型,可以同時存儲多個數(shù)據(jù)姆打。
取數(shù)據(jù)的時候良姆,只能一個一個取,而且取出來的數(shù)據(jù)在迭代器中就不存在了

2.迭代器中的數(shù)據(jù)來源
a.將其他序列轉換成迭代器
b.使用生成式幔戏、生成器去產(chǎn)生數(shù)據(jù)
?1.將數(shù)據(jù)轉換成迭代器 (所有的數(shù)據(jù)都可以轉換成迭代器)
iter1 = iter('abcd')
print(iter1)

iter2 = iter([1, 2, 3, 4])
print(iter2)

iter3 = iter({'name': '小明', 'age': 20})
print(iter3) # 存的只是字典的key

?2.獲取迭代器中的元素

next(迭代器) / 迭代器.next() 取出迭代器中第一個元素(當?shù)髦袥]有元素的時候玛追,會報異常StopIteration)

通過for循環(huán)取出迭代器中的元素
for x in iter3:
print(x)

運行:

image.png

4.生成器

生成器就是迭代器,迭代器不一定是生成器

調用帶有yield關鍵字的函數(shù),拿到的結果就是一個生成器
生成器中的元素就是yield關鍵字后面的值

只要函數(shù)中有yield關鍵字,調用函數(shù)不會再執(zhí)行函數(shù)體闲延,而是創(chuàng)建一個生成器

當獲取生成器的元素的時候痊剖,才會執(zhí)行函數(shù)的函數(shù)體,執(zhí)行到y(tǒng)ield語句為止垒玲,
并且將yield后面的值作為結果返回陆馁;并且保存當前執(zhí)行的位置。
獲取下一個元素的時候合愈,就從上次結束的位置叮贩,接著往下去執(zhí)行函數(shù)击狮,
直到函數(shù)結束或者遇到y(tǒng)ield為止;如果遇到y(tǒng)ield就將yield后面的值作為結果返回益老,
并且保存當前執(zhí)行的位置彪蓬。如果函數(shù)結束了就會出現(xiàn)StopIteration異常

生成器對應的函數(shù),執(zhí)行完成遇到的yield的次數(shù)捺萌,決定了生成器能產(chǎn)生的數(shù)據(jù)的個數(shù)
def func1():
print('abc')
# return 10
yield 100
print('!!!!!!!!')

re = func1()
print(re)

next(re) 執(zhí)行re對應的函數(shù)的函數(shù)體档冬,將yield關鍵字后邊的值作為結果

print(next(re))
print(next(re))

運行:

image.png
def numbers():
for x in range(100):
yield x
print('next', x)

gener = numbers()
print(next(gener))
print(next(gener))
print(next(gener))

運行:

image.png
?練習:寫一個生成器,可以不斷產(chǎn)生斐波那契數(shù)列:1桃纯, 1酷誓, 2, 3态坦, 5盐数, 8, 13驮配, 21娘扩。。壮锻。
def fibonacci():
num1 = 0
num2 = 1
yield 1
while True:
num3 = num2 + num1
num1, num2 = num2, num3
yield num3

gen = fibonacci()
for x in range(10):
print(next(gen))

運行:

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末琐旁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子猜绣,更是在濱河造成了極大的恐慌灰殴,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掰邢,死亡現(xiàn)場離奇詭異牺陶,居然都是意外死亡,警方通過查閱死者的電腦和手機辣之,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門掰伸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人怀估,你說我怎么就攤上這事狮鸭。” “怎么了多搀?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵歧蕉,是天一觀的道長。 經(jīng)常有香客問我康铭,道長惯退,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任从藤,我火速辦了婚禮催跪,結果婚禮上锁蠕,老公的妹妹穿的比我還像新娘。我一直安慰自己叠荠,他們只是感情好匿沛,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布扫责。 她就那樣靜靜地躺著榛鼎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鳖孤。 梳的紋絲不亂的頭發(fā)上者娱,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機與錄音苏揣,去河邊找鬼黄鳍。 笑死,一個胖子當著我的面吹牛平匈,可吹牛的內容都是我干的框沟。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼增炭,長吁一口氣:“原來是場噩夢啊……” “哼忍燥!你這毒婦竟也來了?” 一聲冷哼從身側響起隙姿,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤梅垄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后输玷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體队丝,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年欲鹏,在試婚紗的時候發(fā)現(xiàn)自己被綠了机久。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡赔嚎,死狀恐怖膘盖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情尽狠,我是刑警寧澤衔憨,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站袄膏,受9級特大地震影響践图,放射性物質發(fā)生泄漏。R本人自食惡果不足惜沉馆,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一码党、第九天 我趴在偏房一處隱蔽的房頂上張望德崭。 院中可真熱鬧,春花似錦揖盘、人聲如沸眉厨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽憾股。三九已至,卻和暖如春箕慧,著一層夾襖步出監(jiān)牢的瞬間服球,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工颠焦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留斩熊,地道東北人。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓伐庭,卻偏偏與公主長得像粉渠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子圾另,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內容

  • 01-recode 1.函數(shù)的調用 過程:回到函數(shù)聲明的位置用實參給形參賦值執(zhí)行函數(shù)體過去返回值回到函數(shù)調用的位置...
    年華盡耗_c24e閱讀 213評論 0 0
  • 包(lib)霸株、模塊(module) 在Python中,存在包和模塊兩個常見概念盯捌。 模塊:編寫Python代碼的py...
    清清子衿木子水心閱讀 3,812評論 0 27
  • Notes: 我們選擇用不同方式去記錄見到的事物淳衙。大腦,無限但有「遺忘」的危險饺著。於是箫攀,文字、圖像用以代替(phys...
    Strawberry_Dots閱讀 278評論 0 0
  • 待續(xù)
    曬夢閱讀 367評論 0 0
  • 一位好朋友問了我一個問題梢睛,我竟一時語塞,不知該怎樣回答识椰,或者說我心中根本沒有答案绝葡,他問,你的夢想是什么腹鹉,隔著屏幕...
    Iamsherlocked閱讀 315評論 0 1