day9 & day10 函數(shù)總結(jié)

1. 什么是函數(shù)

函數(shù)是對(duì)實(shí)現(xiàn)某一特定功能的代碼塊的封裝

2. 函數(shù)的分類

  1. 系統(tǒng)函數(shù)(內(nèi)置函數(shù))-- 系統(tǒng)已經(jīng)實(shí)現(xiàn)函數(shù)(已經(jīng)造好的機(jī)器),程序員只需要調(diào)用就行
    print(), input(), len(), sum(), max()

  2. 自定義函數(shù) -- 程序員自己聲明的函數(shù)(自己造機(jī)器)

3. 函數(shù)的聲明(定義)

3.1 語法:

def 函數(shù)名(形參列表):
函數(shù)說明文檔
函數(shù)體

3.2 說明

def -- python聲明函數(shù)的關(guān)鍵字
函數(shù)名 -- 標(biāo)識(shí)符夷野,不能是關(guān)鍵字归苍,和變量名要求一樣
見名知義谓厘,所有字母小寫剂娄,多個(gè)字符用下劃線隔開
() -- 固定寫法
形參列表 -- 變量1艾栋, 變量2乏苦, 變量3, ....(根據(jù)情況變量名的個(gè)數(shù)可以是0個(gè)读规,1個(gè)和多個(gè))
形參作用:是將函數(shù)外面的數(shù)據(jù)傳遞到函數(shù)的里面
: -- 固定寫法
函數(shù)體 -- 與def 保持一個(gè)縮進(jìn)的一條或多條語句(實(shí)現(xiàn)功能的代碼塊)
函數(shù)說明文檔 -- 對(duì)函數(shù)功能抓督、參數(shù)和返回值的說明

3.3 初學(xué)者聲明函數(shù)的步驟

1) 確定函數(shù)的功能
2) 根據(jù)功能確定函數(shù)名
3) 確定形參(看實(shí)現(xiàn)函數(shù)的功能需不需要從外面?zhèn)髦担绻枰獋髦敌枰獛讉€(gè))
4) 實(shí)現(xiàn)函數(shù)的功能
5) 確定返回值

J鳌A逶凇!碍遍!注意:函數(shù)聲明的時(shí)候定铜,函數(shù)體不會(huì)執(zhí)行

4. 函數(shù)的調(diào)用

4.1 語法

函數(shù)名(實(shí)參列表)

4.2 說明

函數(shù)名 -- 已經(jīng)聲明過的函數(shù)
() -- 固定寫法
實(shí)參列表 -- 用實(shí)參給形參賦值 數(shù)據(jù)值1,數(shù)據(jù)2怕敬,數(shù)據(jù)3揣炕,....

4.3 函數(shù)的調(diào)用過程

1)先回到函數(shù)聲明的位置
2)用實(shí)參給形參賦值(傳參,要保證每個(gè)形參都有值)
3)執(zhí)行函數(shù)體
4)獲取返回值
5)回到函數(shù)調(diào)用的位置

函數(shù)的參數(shù)一共有四種:位置參數(shù)东跪、關(guān)鍵字參數(shù)畸陡、默認(rèn)值參數(shù)鹰溜、不定長(zhǎng)參數(shù)

1.位置參數(shù)和關(guān)鍵值參數(shù)

調(diào)用函數(shù)的時(shí)候根據(jù)實(shí)參的寫法分為位置參數(shù)和關(guān)鍵字參數(shù)

位置參數(shù):讓實(shí)參的順序和形參一一對(duì)應(yīng),中間用逗號(hào)隔開
關(guān)鍵字參數(shù):通過以'形參名1 = 值1', '形參名2 = 值2'...來確定實(shí)參
注意:如果既有位置參數(shù)又有關(guān)鍵字參數(shù)丁恭,位置參數(shù)必須寫在關(guān)鍵字參數(shù)前面

2.參數(shù)默認(rèn)值

聲明函數(shù)的時(shí)候可以給形參賦默認(rèn)值曹动。有默認(rèn)值的形參,可以不用給形參賦值
注意:聲明的時(shí)候有默認(rèn)值的參數(shù)要放在沒有默認(rèn)值的參數(shù)后面牲览,默認(rèn)值還可以說明類型

3.參數(shù)的類型說明

python中類型只有說明的作用墓陈,沒有約束的作用
1)參數(shù)賦默認(rèn)值

2)參數(shù)名:類型
def func2(a: int, b= 10)

4.不定長(zhǎng)參數(shù) -- 形參的參數(shù)不確定

4.1. 聲明函數(shù)的時(shí)候在形參前面加一個(gè)星號(hào),那么這個(gè)參數(shù)就變成不定長(zhǎng)參數(shù)第献,可以同時(shí)接收多個(gè)位置實(shí)參(將這個(gè)參數(shù)變成元組)
注意:不帶
號(hào)的參數(shù)要放在帶*號(hào)的前面 沒有默認(rèn)值的要放在有默認(rèn)值的前面

4.2. 聲明函數(shù)的時(shí)候贡必,在形參的前面加**,那么這個(gè)參數(shù)也會(huì)變成不定長(zhǎng)參數(shù), 可以同時(shí)接收多個(gè)關(guān)鍵字實(shí)參(將這個(gè)參數(shù)變成字典)

返回值

1. 什么是函數(shù)的返回值

返回值就是return關(guān)鍵字后面表達(dá)式的值庸毫,就是函數(shù)調(diào)用表達(dá)式的值

1.1 說明

return -- 函數(shù)體中的一個(gè)關(guān)鍵字仔拟,只能在函數(shù)中出現(xiàn)

1.2 作用

執(zhí)行函數(shù)體的時(shí)候結(jié)束函數(shù),確定函數(shù)的返回值

函數(shù)調(diào)用過程:執(zhí)行函數(shù)體飒赃,獲取返回值
1.回到函數(shù)聲明的位置
2.傳參
3.執(zhí)行完函數(shù)體
4.執(zhí)行完函數(shù)體理逊,確定函數(shù)返回值
執(zhí)行完函數(shù)體:函數(shù)體執(zhí)行完,執(zhí)行過程遇到return
確定函數(shù)返回值:看執(zhí)行函數(shù)的過程中有沒有遇到return盒揉,后面的表達(dá)式的值就是函數(shù)的返回值
如果沒有遇到return函數(shù)的返回值就是None
5.回到函數(shù)調(diào)用的位置,接著往后執(zhí)行(這個(gè)時(shí)候函數(shù)調(diào)用表達(dá)式的值)

2.什么時(shí)候需要返回值(初學(xué)者)

指導(dǎo)思想:如果實(shí)現(xiàn)函數(shù)的功能會(huì)產(chǎn)生新的數(shù)據(jù)兑徘,就可以把數(shù)據(jù)作為返回值刚盈。

return 返回值1,返回值2,....(可以返回多個(gè)值挂脑,實(shí)質(zhì)是返回元組)

return可以把數(shù)據(jù)進(jìn)行存儲(chǔ)等操作藕漱,print只能在控制臺(tái)看

匿名函數(shù)

1.什么是匿名函數(shù)

匿名函數(shù)就是沒有名字的函數(shù)

  1. 語法:
    lambda 參數(shù)列表: 返回值

2)說明
lambda - 關(guān)鍵字
參數(shù)列表 -- 相當(dāng)于普通函數(shù)的形參列表,變量1崭闲,變量2肋联,.....至少一個(gè)參數(shù)
: -- 固定寫法,不會(huì)產(chǎn)生縮進(jìn)
返回值 -- 相當(dāng)于普通函數(shù)體中的return語句刁俭。 不能是賦值語句橄仍,可以是其他任何語句

注意:匿名函數(shù)本質(zhì)也是函數(shù) 之前函數(shù)中的語法絕大多數(shù)也適用
(通過:類型名對(duì)參數(shù)進(jìn)行說明不支持,其他的都支持)
匿名函數(shù)能做的事情牍戚,普通函數(shù)也能做侮繁,知識(shí)匿名函數(shù)簡(jiǎn)潔

變量的作用域

1. 變量的作用域

變量的作用域就是變量的使用范圍:

2. 全局變量、局部變量

1)全局變量:沒有聲明在函數(shù)/類中的變量就是全局變量如孝,全局變量的作用域從變量聲明開始到整個(gè)py文件結(jié)束
2)局部變量:聲明在函數(shù)/類中的變量就是局部變量宪哩,作用域是從變量聲明到函數(shù)結(jié)束(形參也是局部變量)

當(dāng)在調(diào)用函數(shù)/類, 系統(tǒng)會(huì)自動(dòng)在內(nèi)存的棧區(qū)間為這個(gè)函數(shù)開辟一個(gè)獨(dú)立的內(nèi)存區(qū)域,用來保存在函數(shù)內(nèi)聲明的變量或者產(chǎn)生的數(shù)據(jù)
當(dāng)函數(shù)調(diào)用結(jié)束后第晰,這塊內(nèi)存區(qū)域會(huì)自動(dòng)銷毀

3. global 和 nonlocal

global -- 在函數(shù)中聲明一個(gè)全局變量(只能在函數(shù)里面使用)
nonlocal -- 想要在局部的局部取修改一個(gè)局部變量的值锁孟,使用nonlocal

x1 = 100 # 可以在外面沒有

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末彬祖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子品抽,更是在濱河造成了極大的恐慌储笑,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桑包,死亡現(xiàn)場(chǎng)離奇詭異南蓬,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)哑了,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門赘方,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人弱左,你說我怎么就攤上這事窄陡。” “怎么了拆火?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵跳夭,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我们镜,道長(zhǎng)币叹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任模狭,我火速辦了婚禮颈抚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嚼鹉。我一直安慰自己贩汉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布锚赤。 她就那樣靜靜地躺著匹舞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪线脚。 梳的紋絲不亂的頭發(fā)上赐稽,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音酒贬,去河邊找鬼又憨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛锭吨,可吹牛的內(nèi)容都是我干的蠢莺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼零如,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼躏将!你這毒婦竟也來了锄弱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤祸憋,失蹤者是張志新(化名)和其女友劉穎会宪,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚯窥,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡掸鹅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拦赠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巍沙。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖荷鼠,靈堂內(nèi)的尸體忽然破棺而出句携,到底是詐尸還是另有隱情,我是刑警寧澤允乐,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布矮嫉,位于F島的核電站,受9級(jí)特大地震影響牍疏,放射性物質(zhì)發(fā)生泄漏蠢笋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一鳞陨、第九天 我趴在偏房一處隱蔽的房頂上張望挺尿。 院中可真熱鬧,春花似錦炊邦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蹂匹,卻和暖如春碘菜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背限寞。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工忍啸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人履植。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓计雌,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親玫霎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子凿滤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 函數(shù)和對(duì)象 1妈橄、函數(shù) 1.1 函數(shù)概述 函數(shù)對(duì)于任何一門語言來說都是核心的概念。通過函數(shù)可以封裝任意多條語句翁脆,而且...
    道無虛閱讀 4,563評(píng)論 0 5
  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學(xué)習(xí)記錄文檔眷蚓,今天18年5月份再次想寫文章,發(fā)現(xiàn)簡(jiǎn)書還為我保存起的...
    Jenaral閱讀 2,754評(píng)論 2 9
  • Lua 5.1 參考手冊(cè) by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,791評(píng)論 0 38
  • 函數(shù)只定義一次反番,但可能被執(zhí)行或調(diào)用任意次沙热。JS函數(shù)是參數(shù)化的,函數(shù)的定義會(huì)包括一個(gè)稱為形參的標(biāo)識(shí)符列表罢缸,這些參數(shù)在...
    PySong閱讀 524評(píng)論 0 0
  • 函數(shù)只定義一次篙贸,但可能被執(zhí)行或調(diào)用任意次。JS函數(shù)是參數(shù)化的祖能,函數(shù)的定義會(huì)包括一個(gè)稱為形參的標(biāo)識(shí)符列表歉秫,這些參數(shù)在...
    PySong閱讀 317評(píng)論 0 0