python-函數(shù)

一、基本介紹

  • 沒有使用函數(shù)式編程之前帶來的問題
  • 代碼的組織結(jié)構(gòu)不清晰唾糯,可讀性差
  • 實(shí)現(xiàn)重復(fù)的功能時(shí)怠硼,你只能重復(fù)編寫實(shí)現(xiàn)功能的代碼,導(dǎo)致代碼冗余移怯,白白耗費(fèi)精力香璃。假如某一部分功能需要擴(kuò)展或更新時(shí),需要找出所有實(shí)現(xiàn)此功能的地方舟误,一一修改增显,無法統(tǒng)一管理,加大了維護(hù)難度脐帝。

函數(shù)是什么

1同云、函數(shù)是對(duì)實(shí)現(xiàn)某一功能的代碼的封裝
2、函數(shù)可以實(shí)現(xiàn)代碼的復(fù)用堵腹,從而減少代碼的重復(fù)編寫

二炸站、定義函數(shù)

1、函數(shù)分類

函數(shù)分為 內(nèi)置函數(shù) 和 自定義 函數(shù)

1疚顷、置函數(shù)是自帶的旱易,直接可以調(diào)用。比如 : id() type() list()
2腿堤、自定義函數(shù) 是我們自己在代碼中編寫定義的

2阀坏、定義函數(shù)語法

def 函數(shù)名(參數(shù)1.參數(shù)2,......)
    '''注釋'''
    函數(shù)體
    return 返回值
  • def 是定義函數(shù)的關(guān)鍵字
  • 函數(shù)名和變量名的定義規(guī)則一樣笆檀,要能體現(xiàn)出函數(shù)的功能含有:
    1忌堂、()小括號(hào)時(shí)必須的
    2、:小括號(hào)后面的英文冒號(hào)是必須的
  • 參數(shù)不是必須的酗洒,多個(gè)參數(shù)使用英文逗號(hào)士修,隔開枷遂,
  • 函數(shù)體可以寫任意合法的python代碼,需要縮進(jìn)4個(gè)空格棋嘲。
  • return 是用于返回?cái)?shù)據(jù)的酒唉,這個(gè)是可選的。
  • 返回值也是可選的沸移。

定義函數(shù)

def foo():
    print("hello jack")
foo()  #調(diào)用函數(shù)
****注意:函數(shù)必須先定義痪伦,才能調(diào)用****

三、函數(shù)的參數(shù)

函數(shù)的參數(shù)可以是python 中的任意數(shù)據(jù)類型雹锣,并且參數(shù)的數(shù)量可以是零個(gè)或多個(gè)网沾。
函數(shù)參數(shù)分為:

  • 形參:形式上的參數(shù),在定義函數(shù)時(shí)使用笆制,其實(shí)就是一個(gè)變量名
  • 實(shí)參:實(shí)際的數(shù)據(jù),實(shí)在調(diào)用函數(shù)時(shí)使用涣达。

1在辆、形參中位置參數(shù)和默認(rèn)參數(shù)

def sys(msg)      --sys就是位置參數(shù)--
    print(msg)
    s = "hello,jack"
#調(diào)用
sys(s)  

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

def func(x,y)
    n = x -y
    print(n)
func(3,2)

2度苔、傳遞參數(shù)

位置參數(shù)有幾個(gè)匆篓,調(diào)用函數(shù)時(shí)就要傳遞幾個(gè)。并且有位置順序的區(qū)分

1.默認(rèn)參數(shù)寇窑,直接傳遞實(shí)參
def conn_L(ip="192.168.142.99"):
      print(ip)
conn_L()

2.也可以傳遞實(shí)參
conn_L("192.168.142.1")

2鸦概、實(shí)參中的位置參數(shù)和關(guān)鍵字參數(shù)

  • 實(shí)參:在函數(shù)使用的時(shí)候,給函數(shù)傳遞的參數(shù)甩骏。
  • 位置參數(shù):一個(gè)個(gè)數(shù)據(jù)對(duì)象窗市,傳遞的時(shí)候是有位置順序區(qū)分的。如:(18饮笛,'jack')
  • 關(guān)鍵字參數(shù):變量名和變量名的組合咨察,傳遞的時(shí)候沒有位置順序之分。如:(name=jack,age=18)
1.位置參數(shù)
def say_me(name,age):
    print("昵稱:",name)
    print("年齡:",age)
say_me("jack",18)      
 
2.關(guān)鍵字參數(shù)
def say_me(name,age):
    print("昵稱:",name)
    print("年齡:",age)
say_me(age=18,name="jack") 

**關(guān)鍵字參數(shù)的變量名必須 和定義函數(shù)時(shí)的參數(shù)名稱一致**

3福青、實(shí)現(xiàn)接受任意參數(shù)

*  可以接收所有的位置參數(shù)
** 可以接收所有的關(guān)鍵字參數(shù)摄狱。

In [7]: def aa(*args,**kwargs): 
   ...:     print(args) 
   ...:     print(kwargs) 
   ...: aa(1,3,a=10)                                                    
(1, 3)
{'a': 10}

4、返回值強(qiáng)大之處

函數(shù)也可以通過關(guān)鍵字 return 返回任何數(shù)量的 Python 中的任意數(shù)據(jù)類型无午,作為結(jié)果

調(diào)用函數(shù)并且接收返回值
In [9]: def foo(): 
   ...:     s = 'lenv' 
   ...:     li = [1,2,3] 
   ...:     return s,li 
   ...: name,l3 = foo()                                                 
In [10]: name                                                           
Out[10]: 'lenv'
In [11]: l3                                                             
Out[11]: [1, 2, 3]

四媒役、函數(shù)的高級(jí)用法

1、作為參數(shù)傳遞

def f1():
    n = 1 + 1
    return n

def foo():
   ret = arg()
   print(ret)
foo(f1)
輸出2
----------------------------------------------
注意這里傳遞的是 函數(shù)名宪迟,后面不要加小括號(hào)酣衷。
本質(zhì)上是傳遞了函數(shù)對(duì)象本身

2、作為返回值返回

def f2():
    print("hello")
def func():
    return f2
f = func()
print(id(f))
print(id(f2))

# f 和 f2 都指向了同一個(gè)函數(shù)對(duì)象
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末次泽,一起剝皮案震驚了整個(gè)濱河市鸥诽,隨后出現(xiàn)的幾起案子商玫,更是在濱河造成了極大的恐慌,老刑警劉巖牡借,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拳昌,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡钠龙,警方通過查閱死者的電腦和手機(jī)炬藤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碴里,“玉大人沈矿,你說我怎么就攤上這事∫б福” “怎么了羹膳?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)根竿。 經(jīng)常有香客問我陵像,道長(zhǎng),這世上最難降的妖魔是什么寇壳? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任醒颖,我火速辦了婚禮,結(jié)果婚禮上壳炎,老公的妹妹穿的比我還像新娘泞歉。我一直安慰自己,他們只是感情好匿辩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布腰耙。 她就那樣靜靜地躺著,像睡著了一般铲球。 火紅的嫁衣襯著肌膚如雪沟优。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天睬辐,我揣著相機(jī)與錄音挠阁,去河邊找鬼。 笑死溯饵,一個(gè)胖子當(dāng)著我的面吹牛侵俗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播丰刊,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼隘谣,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寻歧,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤掌栅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后码泛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猾封,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年噪珊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了晌缘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡痢站,死狀恐怖磷箕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情阵难,我是刑警寧澤岳枷,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站呜叫,受9級(jí)特大地震影響空繁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜怀偷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一家厌、第九天 我趴在偏房一處隱蔽的房頂上張望播玖。 院中可真熱鬧椎工,春花似錦、人聲如沸蜀踏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽果覆。三九已至颅痊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間局待,已是汗流浹背斑响。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓践瓷,卻偏偏與公主長(zhǎng)得像坚洽,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子犯戏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

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

  • 天是淡淡,淡淡的藍(lán)买乃。一種經(jīng)過了水洗之后饲漾,一層一層褪色的那種藍(lán)蝙搔,輕柔,沁透考传。 云會(huì)幻化出不同的樣子吃型。被光照著,似乎發(fā)...
    5123212閱讀 341評(píng)論 0 0
  • 上午伙菊,在火車站廣場(chǎng)上败玉,遇見了一位坐在輪椅上了中年男子。他自己說坐錯(cuò)車了镜硕,本來就是要從上海坐火車回老家武昌的运翼。因?yàn)楫?dāng)...
    君遠(yuǎn)近閱讀 256評(píng)論 0 1
  • 甘于平庸令人上癮,我們享受一時(shí)的安逸自在兴枯,任由平凡的日子埋葬曾經(jīng)的斗志和激情血淌,漸漸地,淹沒在人群中财剖,成了廣大碌碌無...
    666淡看殤感美閱讀 185評(píng)論 0 0
  • 今天是過年第四天悠夯,坐標(biāo)西安。早晨起來躺坟,和夢(mèng)夢(mèng)去喝了好喝的肉丸胡辣湯沦补,湯里有各種蔬菜,白菜咪橙、胡蘿卜夕膀、土豆、肉丸, 再...
    飄曳的舟閱讀 331評(píng)論 1 2
  • 今天我讀了《101個(gè)經(jīng)典智慧故事》——《蘇代說秦》和《杯酒釋兵權(quán)》美侦。 好詞:恐慌产舞、威風(fēng)凜凜、...
    席振桓閱讀 151評(píng)論 0 0