Python簡(jiǎn)明教程第5節(jié):函數(shù)

函數(shù)

其實(shí)和數(shù)學(xué)上說(shuō)的函數(shù)也沒(méi)什么大的差別,就是將一系列的操作集中在一起斩狱。

eg:F(x) = 5x^2 + 6x + 24 ? ?當(dāng)你給定一個(gè) x 的時(shí)候,就會(huì)有函數(shù)的定義得到一個(gè)結(jié)果。當(dāng)我們多次需要這樣一種計(jì)算規(guī)則的時(shí)候则奥,我們定義了這個(gè)函數(shù),下次當(dāng)我們需要這樣的操作的時(shí)候狭园,我們只需要 F(2)读处,F(xiàn)(5)就可以得到結(jié)果,而不必:2^2 + 6*2 + 24 ,?5^2 + 6*5 + 24 這樣繁瑣的表達(dá)唱矛。

在Python中也大概是這樣的罚舱,一些重復(fù)的功能被我們封裝成函數(shù),以便于重復(fù)利用绎谦。

最簡(jiǎn)單的管闷,也是你經(jīng)常使用的 print()函數(shù),這就是一個(gè)Python 內(nèi)置的一個(gè)封裝好的函數(shù)窃肠。這是Python基于全局的考慮包个,幫我們封裝好的眾多函數(shù)之一。當(dāng)然我們也可以根據(jù)自己需要封裝自己的函數(shù)來(lái)完成自己的工作冤留。下面就簡(jiǎn)單介紹下定義函數(shù)的規(guī)則:

def ?func_name( parameters ):

? ? ? ?函數(shù)體

由 def 關(guān)鍵字 碧囊,函數(shù)名 , ?(參數(shù)列表): , ?函數(shù)體四部分組成。

tips:函數(shù)體必須縮進(jìn)纤怒。參數(shù)列表放在圓括號(hào)中間糯而。一般而言,在我們調(diào)用函數(shù)的時(shí)候肪跋,需要按照參數(shù)列表的順序進(jìn)行傳參歧蒋。


函數(shù)調(diào)用

在剛才的小建議中土砂,已經(jīng)提到了函數(shù)的調(diào)用,就像數(shù)學(xué)中的給F(x) 中的 x 賦值一樣谜洽,我們也需要給參數(shù)列表賦值萝映。

函數(shù)定義和調(diào)用

在這個(gè)例子中我們傳遞一個(gè)參數(shù)到函數(shù)體內(nèi),然后得到結(jié)果阐虚。

在Python語(yǔ)言設(shè)計(jì)的時(shí)候借鑒了許多其他語(yǔ)言優(yōu)秀的設(shè)計(jì)序臂。接下來(lái)我們對(duì)上面小建議進(jìn)行展開(kāi)。剛才我們說(shuō)“一般而言实束,在我們調(diào)用函數(shù)的時(shí)候奥秆,需要按照參數(shù)列表的順序進(jìn)行傳參∠滩樱”其實(shí)這就是一般而言构订,其實(shí)Python 可以像 C++ 一樣設(shè)置默認(rèn)參數(shù),而且改變傳參的順序避矢。還是舉個(gè)栗子吧:

我們定義一個(gè)打印中國(guó)人個(gè)人信息的函數(shù):

傳參和默認(rèn)參數(shù)

上面函數(shù)的定義中悼瘾,我們使用了默認(rèn)參數(shù),就是說(shuō)审胸,這個(gè)參數(shù)本身就是有值的亥宿,如果有傳參進(jìn)來(lái)的值就是用傳進(jìn)來(lái)的值,沒(méi)有的話就使用默認(rèn)的值砂沛。上面的栗子也可以說(shuō)明這個(gè)問(wèn)題烫扼,打印中國(guó)人信息,我們默認(rèn)為國(guó)籍是中國(guó)碍庵,但是也有許多中國(guó)籍猶太人映企,中國(guó)籍美國(guó)人?這種稍有差別的需要區(qū)分,使用默認(rèn)參數(shù)很方便說(shuō)明這個(gè)問(wèn)題怎抛。

不按順序傳參的時(shí)候卑吭,需要使用參數(shù)名來(lái)與參數(shù)列表進(jìn)行對(duì)應(yīng),另外默認(rèn)參數(shù)使用的時(shí)候盡量不要改變傳參順序马绝,非要改變的話豆赏,也需要使用參數(shù)名來(lái)與參數(shù)列表進(jìn)行對(duì)應(yīng),以免出錯(cuò)富稻。

不定參數(shù)

我們計(jì)算兩個(gè)數(shù)的和

我們計(jì)算三個(gè)數(shù)的和

我們計(jì)算四個(gè)數(shù)的和

我們計(jì)算五個(gè)數(shù)的和

……

難道我們需要分別定義一個(gè)函數(shù)么掷邦?


不定參數(shù)

一個(gè)帶星號(hào)(*)的變量名會(huì)存放所有未命名的變量參數(shù)。此例中椭赋,傳入的參數(shù)就被存儲(chǔ)在 vartuple 中抚岗。

匿名函數(shù)

其實(shí)匿名函數(shù)只是一個(gè)?lambda?表達(dá)式 ,格式簡(jiǎn)單哪怔,功能也有限宣蔚,不適合封裝復(fù)雜的邏輯向抢。

格式:lambda [arg1 ,arg2,.....argn]:expression


匿名函數(shù)

其他

在一段程序中的變量并不是在哪個(gè)位置都可以訪問(wèn)的。訪問(wèn)權(quán)限決定于這個(gè)變量的作用域胚委。變量的作用域決定了在哪一部分程序你可以訪問(wèn)這個(gè)變量挟鸠。定義在函數(shù)內(nèi)部的變量擁有一個(gè)局部作用域,所以它叫做局部變量亩冬,定義在函數(shù)外的擁有全局作用域艘希,它被叫做全局變量。局部變量只能在其被聲明的函數(shù)內(nèi)部訪問(wèn)硅急,而全局變量可以在整個(gè)程序范圍內(nèi)訪問(wèn)覆享。


Then,that’s all营袜,thank you撒顿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市荚板,隨后出現(xiàn)的幾起案子核蘸,更是在濱河造成了極大的恐慌,老刑警劉巖啸驯,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異祟峦,居然都是意外死亡罚斗,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門宅楞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)针姿,“玉大人,你說(shuō)我怎么就攤上這事厌衙【嘁” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵婶希,是天一觀的道長(zhǎng)榕暇。 經(jīng)常有香客問(wèn)我,道長(zhǎng)喻杈,這世上最難降的妖魔是什么彤枢? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮筒饰,結(jié)果婚禮上缴啡,老公的妹妹穿的比我還像新娘。我一直安慰自己瓷们,他們只是感情好业栅,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布秒咐。 她就那樣靜靜地躺著,像睡著了一般碘裕。 火紅的嫁衣襯著肌膚如雪携取。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天娘汞,我揣著相機(jī)與錄音歹茶,去河邊找鬼。 笑死你弦,一個(gè)胖子當(dāng)著我的面吹牛惊豺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播禽作,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼尸昧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了旷偿?” 一聲冷哼從身側(cè)響起烹俗,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎萍程,沒(méi)想到半個(gè)月后幢妄,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茫负,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年蕉鸳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忍法。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡潮尝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出饿序,到底是詐尸還是另有隱情勉失,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布原探,位于F島的核電站乱凿,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏踢匣。R本人自食惡果不足惜告匠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望离唬。 院中可真熱鬧后专,春花似錦、人聲如沸输莺。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至型凳,卻和暖如春丈冬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背甘畅。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工埂蕊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人疏唾。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓蓄氧,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親槐脏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子喉童,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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

  • 〇、前言 本文共108張圖顿天,流量黨請(qǐng)慎重堂氯! 歷時(shí)1個(gè)半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識(shí)的框架詳細(xì)梳理了一遍牌废。 ...
    Raxxie閱讀 18,922評(píng)論 17 410
  • 第5章 函數(shù)和函數(shù)式編程 5.1 引言函數(shù)是組織好的咽白,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一鸟缕,或相關(guān)聯(lián)功能的代碼段局扶。函數(shù)...
    VIVAFT閱讀 947評(píng)論 0 5
  • 尼瑪?shù)?/div>
    地對(duì)空點(diǎn)解點(diǎn)解閱讀 174評(píng)論 0 0
  • 我是有有,熱愛(ài)心理學(xué)叁扫。今天來(lái)聊聊《歡樂(lè)好聲音》。 電影講述的是考拉實(shí)現(xiàn)夢(mèng)想的故事畜埋。它的夢(mèng)想是再現(xiàn)劇院的昔日輝煌莫绣,為...
    有有Yoyo閱讀 687評(píng)論 0 0
  • 風(fēng)把圍巾帶來(lái)暖了行人的脖子 雪的影子在天空徘徊趕走了南去的雁子 太陽(yáng)像男中音的歌喉磁性通透卻燃不起場(chǎng)子 只有你眼里...
    王淺文閱讀 479評(píng)論 12 18