python3 定義函數(shù)

定義函數(shù)

Python 有很多有用的內(nèi)置函數(shù), 但還是不能滿足程序員的需求, 所以需要自定義函數(shù)盹牧。

如何編寫(xiě)自定義函數(shù), 需要用到def語(yǔ)句铸豁, 函數(shù)名, 括號(hào)及參數(shù)菊碟, 冒號(hào)节芥, 函數(shù)說(shuō)明,內(nèi)置縮進(jìn)編碼模塊逆害,return 語(yǔ)句藏古, 其中有一些也可省略不寫(xiě)增炭,后面會(huì)慢慢介紹。

def function(para):
# description the function
    step1
    step2
    ... ...
    return XXX

def語(yǔ)句拧晕, 函數(shù)名, 括號(hào)梅垄, 冒號(hào)

編寫(xiě)函數(shù)不可或缺的元素厂捞, 一定都要寫(xiě)。函數(shù)名盡量寫(xiě)得簡(jiǎn)單易懂队丝。

函數(shù)說(shuō)明

一般是對(duì)函數(shù)的描述說(shuō)明靡馁。

內(nèi)置縮進(jìn)編碼模塊

這是編寫(xiě)具體的操作命令的地方, 如果還未想好如何編寫(xiě)机久, 可以使用pass來(lái)占位臭墨,讓程序可以運(yùn)行起來(lái),防止調(diào)試出錯(cuò)膘盖。

def test_pass():
    print ('Remember to write function to get result 50')
    pass
    return 50

print (test_pass())

#result
Remember to write function to get result 50
50

return 語(yǔ)句

  • 沒(méi)有寫(xiě)return 語(yǔ)句胧弛,函數(shù)則返回None
  • 寫(xiě)return 或者 return None,函數(shù)也返回None
  • 返回多個(gè)值侠畔,可以使用return (a, b, c)返回值结缚,或者省略括號(hào)return a, b, c。實(shí)際上函數(shù)是返回了一個(gè)tuple的值软棺, 但是我們可以按位置一一獲取對(duì)應(yīng)的value
def test_return():
    x = 1 + 2
    y = 2 + 3
    #return / return None
    #return x, y / return (x, y)

print (test_return())

#result
None
None
(3, 5)

參數(shù)

參數(shù)放在最后講红竭, 是因?yàn)檫@里面的東西還是很多的。首先看個(gè)例子喘落。

def test_paras(name, age=18, city='Beijing'):
    print ('Name:%s Age:%s City:%s' % (name, age, city))
  • name必寫(xiě)參數(shù)茵宪,一定要寫(xiě)對(duì)應(yīng)傳參,否則報(bào)錯(cuò)
  • age/city默認(rèn)參數(shù)瘦棋,可傳可不傳參稀火,但位置一定要對(duì)應(yīng)好
  • 參數(shù)不能多也不能少
  • 必寫(xiě)參數(shù) 需要寫(xiě)到 默認(rèn)參數(shù)
test_paras()
#result
TypeError: test_paras() missing 1 required positional argument: 'name'

test_paras('Zhangsan')
test_paras('Lisi', 20)
test_paras('Lisi', age=20)
test_paras('Wangwu', city='Shanghai')
test_paras('Wangwu', age=18, city='Shanghai')
test_paras('Wangwu', city='Shanghai', age=18)
#result
Name:Zhangsan Age:18 City:Beijing
Name:Lisi Age:20 City:Beijing
Name:Lisi Age:20 City:Beijing
Name:Wangwu Age:18 City:Shanghai
Name:Wangwu Age:18 City:Shanghai
Name:Wangwu Age:18 City:Shanghai

如上的案例都是限制了參數(shù)個(gè)數(shù)的, 最多傳三個(gè)參數(shù)name/age/city兽狭, 但是如果有一些特例憾股,需要傳多個(gè)參數(shù)怎么辦呢。 參數(shù)前面加個(gè)*, 變成可變參數(shù)箕慧。

  • 可變參數(shù) 可接收0到多個(gè)參數(shù)服球, 打印出來(lái)是元祖
  • 可以直接傳送列表和元祖可變參數(shù), 但是前面一定要加*
def test_paras(*agrs):
    print(arg)

test_paras()
test_paras(1, 2, 3)
test_paras(*[1, 2, 3])
test_paras(*(1, 2, 3))
n = [1, 2, 3]
test_paras(*n)

#result
()
(1, 2, 3)
(1, 2, 3)
(1, 2, 3)
(1, 2, 3)

那如果想要傳多個(gè)包含名稱的參數(shù)颠焦,例如a=1斩熊,b=2,c=3......伐庭,那該怎么寫(xiě)呢粉渠。參數(shù)前面加個(gè)**, 變成關(guān)鍵字參數(shù)分冈。

  • 關(guān)鍵字參數(shù) 可接收0到多個(gè)帶名稱的參數(shù), 打印出來(lái)是字典
  • 可以直接傳送字典關(guān)鍵字參數(shù)霸株, 但是前面一定要加**
def test_paras(**kwargs):
    print(kwargs)

test_paras()
test_paras(a=1, b=2, c=3)
test_paras(**{'a': 1, 'b': 2, 'c': 3})
kw = {'a': 1, 'b': 2, 'c': 3}
test_paras(**kw)

#result
{}
{'a': 1, 'b': 2, 'c': 3}
{'a': 1, 'b': 2, 'c': 3}
{'a': 1, 'b': 2, 'c': 3}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末坡椒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子尤溜,更是在濱河造成了極大的恐慌倔叼,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宫莱,死亡現(xiàn)場(chǎng)離奇詭異丈攒,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)授霸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)巡验,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人绝葡,你說(shuō)我怎么就攤上這事深碱。” “怎么了藏畅?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵敷硅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我愉阎,道長(zhǎng)绞蹦,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任榜旦,我火速辦了婚禮幽七,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘溅呢。我一直安慰自己澡屡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布咐旧。 她就那樣靜靜地躺著驶鹉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪铣墨。 梳的紋絲不亂的頭發(fā)上室埋,一...
    開(kāi)封第一講書(shū)人閱讀 52,246評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼姚淆。 笑死孕蝉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的腌逢。 我是一名探鬼主播降淮,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼搏讶!你這毒婦竟也來(lái)了骤肛?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤窍蓝,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后繁成,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體吓笙,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年巾腕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了面睛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡尊搬,死狀恐怖叁鉴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情佛寿,我是刑警寧澤幌墓,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站冀泻,受9級(jí)特大地震影響常侣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜弹渔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一胳施、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肢专,春花似錦舞肆、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至欧募,卻和暖如春压状,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工种冬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留镣丑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓娱两,卻偏偏與公主長(zhǎng)得像莺匠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子十兢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

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

  • 在Python中趣竣,定義一個(gè)函數(shù)要使用def語(yǔ)句,依次寫(xiě)出函數(shù)名旱物、括號(hào)遥缕、括號(hào)中的參數(shù)和冒號(hào),然后宵呛,在縮進(jìn)塊中編寫(xiě)函數(shù)...
    Zhigang_Han閱讀 431評(píng)論 0 0
  • 1. 函數(shù)介紹1.1. 為什么要使用函數(shù)1.2. Python 中的函數(shù) 2. 函數(shù)的基本使用 3. 函數(shù)的參數(shù)3...
    靜堂先生閱讀 518評(píng)論 0 0
  • 第5章 函數(shù)和函數(shù)式編程 5.1 引言函數(shù)是組織好的单匣,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一宝穗,或相關(guān)聯(lián)功能的代碼段户秤。函數(shù)...
    VIVAFT閱讀 961評(píng)論 0 5
  • 寫(xiě)在前面的話 代碼中的# > 表示的是輸出結(jié)果 輸入 使用input()函數(shù) 用法 注意input函數(shù)輸出的均是字...
    FlyingLittlePG閱讀 2,771評(píng)論 0 8
  • 你說(shuō)我們?cè)诒舜嘶橐鲋卸际窃?jīng)受過(guò)傷的人鸡号,因?yàn)橛们樘睿詡镁吞钚攵Γε略僖淮问軅?我說(shuō)既然我們都是曾經(jīng)受過(guò)傷...
    作家楓林向晚閱讀 193評(píng)論 3 5