python入門(mén)(四)函數(shù)

函數(shù)

  • 關(guān)鍵字 def 后接函數(shù)名稱(chēng)和圓括號(hào)()
  • 傳人參數(shù)必須放到圓括號(hào)中()
  • 函數(shù)第一行使用冒號(hào):結(jié)尾
  • 函數(shù)體使用縮進(jìn)分割
#!/usr/bin/python3

def getPerson():
    return 'hello word'

print(getPerson()
#輸出結(jié)果:hello word

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

  • 必選參數(shù)必須在前面奖磁,默認(rèn)參數(shù)在后。
  • 默認(rèn)參數(shù)一般為腮考,參數(shù)值變化小的設(shè)置為默認(rèn)參數(shù)。
#!/usr/bin/python3

def getPerson(name, sex, age = '18'):
    return 'name=' + name + '\nsex=' + sex + '\nage=' + age

print(getPerson('lxy', 'f')
#輸出結(jié)果:
name=lxy
sex=f
age=18

參數(shù)

  • 在python,類(lèi)型屬于對(duì)象慰安,變量是沒(méi)有類(lèi)型的
a = 'hello word'
a = [1,2,3]
  • 上面的例子中 'hello word' 是String類(lèi)型盆耽,[1,2,3]是List類(lèi)型 變量a是一個(gè)指針?biāo)梢允荢tring類(lèi)型也可以是List類(lèi)型

可更改對(duì)象

  • List(列表)Sets(集合)Dictionaries (字典) 是可變類(lèi)型
#!/usr/bin/python3
nums = [1, 2, 3]
nums[0] = 5
print(nums)
#輸出結(jié)果:[5, 2, 3]
  • 變量賦值nums = [1, 2, 3] 后再賦值nums[0]=5蹋砚,則是將list nums的第1個(gè)元素值更改,本身nums沒(méi)有動(dòng)摄杂,只是其內(nèi)部的一部分值被修改了坝咐。

不可變對(duì)象

  • Numbers (數(shù)字) String (字符串) Tuple (元組) 為不可變對(duì)象
#!/usr/bin/python3
a = 'hello'
a = 'word'
print(a)
#輸出結(jié)果:word
  • 這里a賦值‘hello’再賦值'word', 其實(shí)是重新生成一個(gè)String類(lèi)型,然后hello被丟棄匙姜,重新指向word畅厢,相當(dāng)于新生成a
#!/usr/bin/python3
def ChangeInt( a ):
    a = 10

b = 2
ChangeInt(b)
print(b)
# 輸出結(jié)果2
  • 調(diào)用ChangeInt(b) 傳值的時(shí)候 a 、b指向同一類(lèi)型 2
  • 但a = 10 的時(shí)候就重新生成了一個(gè)新的對(duì)象

命名參數(shù)

  • 一般給函數(shù)傳參數(shù)的時(shí)候氮昧,需要按照順序傳參框杜,但是可以使用命名參數(shù)就不需要按照順序傳參數(shù)
  • 如下例子,兩種輸出方式是一樣的
#!/usr/bin/python3
def getPerson(name, age):
    print('name=',name)
    print('age=', age)
getPerson('lxy', 11)
getPerson(age=11, name='lxy'
#輸出結(jié)果
name= lxy
age= 11

不定長(zhǎng)傳參

  • 有的時(shí)候可能需要多個(gè)參數(shù)袖肥,但是又不想寫(xiě)多個(gè)參數(shù)來(lái)接收就可以使用不定長(zhǎng)傳參
  • 使用 *
#!/usr/bin/python3
def nums(n, *num):
    print(n,num)

nums(1,2,3,4,'aaa')

輸出結(jié)果:1 (2, 3, 4, 'aaa')
  • 想獲取其中一個(gè)值 可以使用下標(biāo)
#!/usr/bin/python3
def nums(n, *num):
    print(n,num[0])

nums(1,2,3,4,'aaa')
#輸出結(jié)果:1 2

匿名函數(shù)

  • 關(guān)鍵字 lambda
  • lambda的主體是一個(gè)表達(dá)式咪辱,而不是一個(gè)代碼塊。僅僅能在lambda表達(dá)式中封裝有限的邏輯進(jìn)去椎组。
#!/usr/bin/python3

sum = lambda n1,n2: n1+n2

print(sum(1,2))
#輸出結(jié)果:3

全局變量和局部變量

  • 定義在函數(shù)內(nèi)部的都有一個(gè)局部作用域油狂,定義在全局的是全局作用域
  • 局部變量只能在函數(shù)內(nèi)部使用
  • 全局變量可以在全局使用
#!/usr/bin/python3
total = 10
def sum():
    print('total=', total)

sum()
#輸出結(jié)果:total= 10
  • total 為全局變量可以在函數(shù)sum內(nèi)部使用
#!/usr/bin/python3
def sum():
    a = 10

print(a)
#輸出結(jié)果:NameError: name 'a' is not defined
  • a是在sun內(nèi)部聲明的,所以在函數(shù)外部調(diào)用會(huì)報(bào)錯(cuò)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末寸癌,一起剝皮案震驚了整個(gè)濱河市专筷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蒸苇,老刑警劉巖磷蛹,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異溪烤,居然都是意外死亡味咳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)檬嘀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)槽驶,“玉大人,你說(shuō)我怎么就攤上這事鸳兽〉囝恚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)堡纬。 經(jīng)常有香客問(wèn)我聂受,道長(zhǎng),這世上最難降的妖魔是什么烤镐? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任蛋济,我火速辦了婚禮,結(jié)果婚禮上炮叶,老公的妹妹穿的比我還像新娘碗旅。我一直安慰自己,他們只是感情好镜悉,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布祟辟。 她就那樣靜靜地躺著,像睡著了一般侣肄。 火紅的嫁衣襯著肌膚如雪旧困。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,328評(píng)論 1 310
  • 那天稼锅,我揣著相機(jī)與錄音吼具,去河邊找鬼。 笑死矩距,一個(gè)胖子當(dāng)著我的面吹牛拗盒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锥债,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼陡蝇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了哮肚?” 一聲冷哼從身側(cè)響起登夫,我...
    開(kāi)封第一講書(shū)人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎允趟,沒(méi)想到半個(gè)月后悼嫉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拼窥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蹋凝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鲁纠。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖鳍寂,靈堂內(nèi)的尸體忽然破棺而出改含,到底是詐尸還是另有隱情,我是刑警寧澤迄汛,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布捍壤,位于F島的核電站骤视,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鹃觉。R本人自食惡果不足惜专酗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望盗扇。 院中可真熱鬧祷肯,春花似錦、人聲如沸疗隶。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)斑鼻。三九已至蒋纬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坚弱,已是汗流浹背蜀备。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留史汗,地道東北人琼掠。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像停撞,于是被迫代替她去往敵國(guó)和親瓷蛙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

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