函數(shù)是組織好,可重復(fù)使用的,用來實(shí)現(xiàn)相關(guān)功能的代碼段
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、萬載網(wǎng)站維護(hù)、網(wǎng)站推廣。
函數(shù)提高了代碼的重復(fù)利用率和應(yīng)用的模塊性。
除Python自帶的函數(shù)之外,也可以自己創(chuàng)建函數(shù),叫做自定義函數(shù)
語法:
函數(shù)代碼塊以 def 開頭
參數(shù)為 輸入值 ,放于函數(shù)名后口號里面,
函數(shù)內(nèi)容以冒號:開始,函數(shù)體縮進(jìn), return 返回 輸出值
函數(shù)調(diào)用使用關(guān)鍵字參數(shù)來確定傳入的參數(shù)值,此時(shí),如果多個函數(shù)則不需要按照指定順序。
在定義函數(shù)時(shí),指定參數(shù)默認(rèn)值。調(diào)用時(shí)如果不傳入?yún)?shù),則使用默認(rèn)值
不定長部分如果沒有指定參數(shù),傳入是一個空元組
加了 兩個星號 ** 的參數(shù)會以字典的形式導(dǎo)入
/ 用來指明函數(shù)形參必須使用指定位置參數(shù),不能使用關(guān)鍵字參數(shù)的形式。
3.8版本之后的才能使用
不使用 def 定義函數(shù),沒有函數(shù)名
lamdba主體時(shí)一個表達(dá)式,而不是代碼塊,函數(shù)體比def簡單很多
定義在函數(shù)內(nèi)部的為局部變量,僅能在函數(shù)內(nèi)部使用
定義在函數(shù)外部的為全局變量,可在全局使用
模塊是將包含所有定義的函數(shù)和變量的文件,一般將同類功能的函數(shù)組和在一起稱為模塊。
模塊需要導(dǎo)入后,在調(diào)用相應(yīng)函數(shù)進(jìn)行使用
模塊導(dǎo)入的方法:
從模塊中導(dǎo)入一個指定的部分
把一個模塊的所有內(nèi)容全都導(dǎo)入
print函數(shù)介紹:print函數(shù)被用來進(jìn)行數(shù)據(jù)的輸出,也就是將數(shù)據(jù)顯示在你所能看到的界面上,比如我們print("Hello World"),運(yùn)行它,就會在瀏覽器上顯示Hello World。
return函數(shù)介紹:可以選擇性地向調(diào)用方返回一個表達(dá)式,可帶參數(shù)也可不帶,不帶參數(shù)的return函數(shù)會返回None。return單獨(dú)運(yùn)行時(shí),需要print函數(shù)才能顯示出來,但在交互模式下,return的結(jié)果會自動顯示出來。
需要注意的一點(diǎn)是,return是返回值,它后面的代碼塊是不執(zhí)行的,因此需要執(zhí)行的代碼不能放在return語句后,會失效。
看了上面的介紹,小伙伴大概清楚了一點(diǎn),那究竟區(qū)別在哪呢?
return只能運(yùn)用在函數(shù)中,有時(shí)候函數(shù)運(yùn)行完會得出一個結(jié)果值,我們可以拿這個得出的值去進(jìn)行另外的運(yùn)算,所以我們需要用return將結(jié)果給返回出來;
如果我們用print的話,僅僅是將結(jié)果顯示在我們能看到的界面上而已,而并沒有辦法得到這個值,更無法進(jìn)行后續(xù)的操作了。
另外,在循環(huán)語句中使用,return可以跳出循環(huán),而print則會一直循環(huán),除非使用函數(shù)進(jìn)行終止。
Python 有很多有用的內(nèi)置函數(shù), 但還是不能滿足程序員的需求, 所以需要 自定義函數(shù) 。
如何編寫 自定義函數(shù) , 需要用到 def語句, 函數(shù)名, 括號及參數(shù), 冒號, 函數(shù)說明,內(nèi)置縮進(jìn)編碼模塊,return 語句 , 其中有一些也可省略不寫,后面會慢慢介紹。
編寫函數(shù)不可或缺的元素, 一定都要寫。函數(shù)名盡量寫得簡單易懂。
一般是對函數(shù)的描述說明。
這是編寫具體的 操作命令 的地方, 如果還未想好如何編寫, 可以使用 pass 來占位,讓程序可以運(yùn)行起來,防止調(diào)試出錯。
參數(shù)放在最后講, 是因?yàn)檫@里面的東西還是很多的。首先看個例子。
如上的案例都是限制了參數(shù)個數(shù)的, 最多傳三個參數(shù) name/age/city , 但是如果有一些特例,需要傳多個參數(shù)怎么辦呢。 參數(shù)前面加個 * , 變成 可變參數(shù) 。
那如果想要傳多個包含名稱的參數(shù),例如a=1,b=2,c=3......,那該怎么寫呢。參數(shù)前面加個 ** , 變成 關(guān)鍵字參數(shù) 。
如果不需要傳參,括號里就不用填,注意,python中不需要定義變量類型。自定義函數(shù)除了函數(shù)的功能是我們自己編寫代碼實(shí)現(xiàn)的外,其他的與python中的函數(shù)并無差別,所以在調(diào)用函數(shù)時(shí),直接使用函數(shù)名就行。
1、函數(shù)定義
①使用def關(guān)鍵字定義函數(shù)
②
def 函數(shù)名(參數(shù)1.參數(shù)2.參數(shù)3...):
"""文檔字符串,docstring,用來說明函數(shù)的作用"""
#函數(shù)體
return 表達(dá)式
注釋的作用:說明函數(shù)是做什么的,函數(shù)有什么功能。
③遇到冒號要縮進(jìn),冒號后面所有的縮進(jìn)的代碼塊構(gòu)成了函數(shù)體,描述了函數(shù)是做什么的,即函數(shù)的功能是什么。Python函數(shù)的本質(zhì)與數(shù)學(xué)中的函數(shù)的本質(zhì)是一致的。
2、函數(shù)調(diào)用
①函數(shù)必須先定義,才能調(diào)用,否則會報(bào)錯。
②無參數(shù)時(shí)函數(shù)的調(diào)用:函數(shù)名(),有參數(shù)時(shí)函數(shù)的調(diào)用:函數(shù)名(參數(shù)1.參數(shù)2.……)
③不要在定義函數(shù)的時(shí)候在函數(shù)體里面調(diào)用本身,否則會出不來,陷入循環(huán)調(diào)用。
④函數(shù)需要調(diào)用函數(shù)體才會被執(zhí)行,單純的只是定義函數(shù)是不會被執(zhí)行的。
⑤Debug工具中Step into進(jìn)入到調(diào)用的函數(shù)里,Step Into My Code進(jìn)入到調(diào)用的模塊里函數(shù)。