1.函數(shù)
Python中的函數(shù)格式:
def 函數(shù)名():
? ? 函數(shù)內(nèi)容
函數(shù)名不能以數(shù)字開頭,只能由字母數(shù)字下劃線構(gòu)成,一般推薦使用下劃線連接單詞,或者使用小駝峰法命名.
函數(shù)一般集中定義.
函數(shù)可以嵌套調(diào)用
函數(shù)中的注釋最好采用多行注釋,使用help()時(shí)可以獲得提醒
1.1函數(shù)的四種類型
類型一:
def 函數(shù)名():
? ? ? ? pass
類型二:
def 函數(shù)名():
? ? ? ? return xxx
類型三:
def 函數(shù)名(參數(shù)):
? ? ? ? pass
類型四:
def 函數(shù)名(參數(shù)):
? ? ? ? return xxx
在Python中可以有多個(gè)return,語(yǔ)法格式不違法.
Python的函數(shù)中,若想返回多個(gè)值,可以用元組列表對(duì)要返回的值進(jìn)行封裝,然后返回元組或列表.
若是以return x,y,z的形式返回,默認(rèn)是以元組的形式,和return (x,y,z)等同
注意實(shí)參與形參的區(qū)別
1.2變量
局部變量:
函數(shù)內(nèi)部定義的變量稱為局部變量.
全局變量:
在函數(shù)外部定義,在任何函數(shù)內(nèi)部均可使用的變量.
需要在函數(shù)中修改全局變量的值時(shí),需要先用關(guān)鍵字global對(duì)全局變量進(jìn)行聲明,一般在函數(shù)內(nèi)部剛開始的時(shí)候聲明.
列表,字典當(dāng)全局變量時(shí),不需要聲明global就可以在函數(shù)內(nèi)部修改.
全局變量需要在函數(shù)調(diào)用之前定義.推薦定義在方法之前.
當(dāng)局部變量與全局變量名字相同時(shí),采取就近原則.
為了避免全局變量和局部變量命名相同,可以在全局變量名稱前加前綴,如g_xxx.
1.3函數(shù)參數(shù)
缺省參數(shù):為參數(shù)指定默認(rèn)值,缺省參數(shù)可以有多個(gè),缺省參數(shù)位于方法普通參數(shù)的后面
調(diào)用含缺省參數(shù)的方法時(shí),可以使用命名參數(shù)的方式,通過給其指定的形參賦值,此時(shí)可以不忽略函數(shù)命名時(shí)的參數(shù)順序
def test(a,b=2,c=3):
? ? pass
test(2)
test(1,2)
test(11,c=33):多個(gè)缺省參數(shù)時(shí),可以給其指定的形參賦值.
test(b=2,c=3,a=1)
不定長(zhǎng)參數(shù):需要在形參前加星號(hào)*,且放在參數(shù)的后面,加星號(hào)的形參,當(dāng)傳遞的參數(shù)個(gè)數(shù)大于除帶星號(hào)的外形參的個(gè)數(shù)時(shí),以元組的形式保存在帶星號(hào)的形參中.
def test(a,b,*args):
? ? ? pass
兩個(gè) 星號(hào)的不定長(zhǎng)參數(shù)
def test(a,b=2,*args,**kwargs):?
????? ? pass
test(1,33,333,token=1,hehe=32)
kwargs以字典的形式保存,帶有名字的參數(shù),其他超過的部分以元組的形式保存在args中
拆包:
一個(gè)星號(hào)拆元組,兩個(gè)星號(hào)拆字典
def test(a,b=2,*args,**kwargs):?
????? ? pass
A=(22,33,44)
B={name:'Jake','age':15}
test(1,33,333,*A,**B)
1.4引用
在Python中,變量保存的是指向?qū)ο笏趦?nèi)存的地址.
在Python中出現(xiàn)等號(hào)'='的地方都是引用.
可以通過內(nèi)置函數(shù)id(x)查看變量x所指向的地址值.
1.5遞歸
遞歸:函數(shù)內(nèi)部調(diào)用自己.
遞歸注意死循環(huán)問題.
程序內(nèi)容推薦順序
編碼聲明:-*- coding:utf-8 -*-
第三方庫(kù)導(dǎo)入:import xxx
全局變量的聲明
函數(shù)的定義
函數(shù)的調(diào)用
1.6匿名函數(shù)
在Python中對(duì)匿名函數(shù)提供了有限的支持.
Python中,使用關(guān)鍵字lambda表示匿名函數(shù),冒號(hào)前面的x表示函數(shù)參數(shù)。
匿名函數(shù) ?lambda x: x + x
實(shí)際上就是:
def f(x):
? ? ? ?return x + x
匿名函數(shù)有個(gè)限制,就是只能有一個(gè)表達(dá)式,不用寫return,返回值就是該表達(dá)式的結(jié)果。
由于匿名函數(shù)沒有名字,因此不必?fù)?dān)心函數(shù)名沖突問題。
此外,匿名函數(shù)也是一個(gè)函數(shù)對(duì)象,也可以把匿名函數(shù)賦值給一個(gè)變量,再利用變量來調(diào)用該函數(shù).
匿名函數(shù)可以作為函數(shù)的實(shí)參.