在流程很簡單的時候,或者流程不簡單但咱們不須要考慮開發維護成本的時候,平面地組織你的代碼就夠了,不用費腦子,不須要考慮層次或重用的東西。當事情變得愈來愈複雜時,當同行對代碼質量要求愈來愈高時,有一些重要的概念就出現了,而重用就是其中一個。重用就讓某段代碼能夠方便地反覆使用。爲了重用,有必要認真考慮怎麼封裝,這是設計層面的事情,而函數是經常使用或重要的封裝方式,雖然不是惟一的封裝方式。html
本文介紹流程的函數封裝,以及python的內置函數。python
函數,是實現了特定功能的代碼塊的集合。類或對象,也能夠重用。但若是從機器語言的角度來講,類或對象(在編譯或解釋後)都不復存在,而函數,也就是指令塊,仍然存在,且可能被反覆執行,因此函數是封裝的基礎元素。使用函數對流程進行封裝,可讓程序更加模塊化,而模塊化是系統設計的重要基礎。固然,函數不是模塊化的惟一手段。模塊化
python中定義函數,以下圖:函數
函數,有兩個特徵,一個是參數,一個返回值。ui
在用def定義函數時,能夠在括號內定義參數,這個叫形參(在函數調用時,傳遞的參數叫實參),好比:編碼
執行結果以下:spa
在定義函數時,能夠指定默認參數,意思是,調用時若是不傳參數,那就使用默認值,好比這樣定義一個函數:設計
執行效果是這樣的:3d
以上函數調用時,已經使用了關鍵字參數,也就是調用時指定函數形參的名字,以"paramer1=xxx"的形式進行傳遞,這種方式常常使用,由於能夠明確給哪一個參數傳遞了哪一個值,並且無順序要求。htm
函數還有一種參數,叫不定長參數,適用於參數不明確的情景,好比這樣定義與調用:
執行效果以下:
以上介紹了函數如何定義,以及它的參數特徵。
函數除了參數這個特徵,還有一個特徵是返回值,返回值使用關鍵字return來返回。
一個函數若是沒有return語句,那就至關在最後加了這一句:
return
如下是一個使用返回值的示例:
執行效果是這樣的:
以上函數的定義,都使用def,正而八經地定義了一個有名字的函數,而python還提供了一個實用的特徵,叫lambda函數。lambda函數也叫匿名函數,通常是較短小的函數。
使用lambda關鍵字時,不指定函數名,只指定函數體,好比能夠這樣使用:
再好比這個示例:
以上介紹的是自定義函數,除了自定義函數,python還提供了一系列的內置函數,方便編碼時直接調用。
好比,有這樣的內置函數(此圖來源於 http://www.runoob.com/python/... ):
對於每一個內置函數的做用,如下是一種查看的辦法--使用內置函數help()來查看,好比輸入:
help(len)
能夠看到這樣的提示輸出:
也就是查看了內置函數len()的做用。
好了,總結一下,本文介紹了流程的函數封裝,包括函數的參數與返回值的特徵,特別介紹了lambda函數,文章最後簡單介紹了python提供的內置函數。see you