Python---基本知識17之函數(shù)1

什么是函數(shù)?

函數(shù)其實就是把許多代碼放在一起蹬刷,包裝好之后的一種形式,使得他可以被多次復(fù)用频丘。

函數(shù)的簡單定義:

如下面代碼塊所示办成,首先是一個關(guān)鍵字def,然后一個空格搂漠,后面跟函數(shù)名迂卢,一個小括號,冒號桐汤,后面就是代碼塊了冷守,當(dāng)然記得加一個tab縮進(jìn);調(diào)用就直接使用函數(shù)名就OK了惊科;

def simple():

????print("我是函數(shù)的簡單定義")

simple()

傳一個參數(shù):

def simple(str):

????print(str)

simple('一個參數(shù)的函數(shù)')

傳多個參數(shù):參數(shù)之間以逗號隔開拍摇,在調(diào)用的時候有兩種方式,一種是一一對應(yīng)馆截,一種是關(guān)鍵字參數(shù)對應(yīng)

1.

def sum(x,y):

????print(x+y)

sum(1,2)

2.

def sum(x,y):

????print(x+y)

sum(y=5,x=7)

傳不定長參數(shù):如下面代碼塊所示充活,首先形參前面加一個*,表示傳過來的參數(shù)應(yīng)該是元組類型,那么t就是一個元組蜡娶,在使用函數(shù)的時候混卵,直接傳多個參數(shù)就行;如果是參數(shù)前面加兩個**窖张,表示傳過來的參數(shù)類型應(yīng)該是字典幕随,那么在使用函數(shù)的時候傳參就應(yīng)該是字典格式的,

1

def indefinite(*t):

????print(t,type(t))

????for i in t: i+=i print(i)

indefinite(1,2,3)

2

def indefinnite(**d):

????print(d,type(d))

????items=d.items()

????result=0

????for k,v in items:

????????print(v)

????????result+=v

print(result)

indefinnite(a=4,b=5)

參數(shù)的裝包和拆包:

裝包:就是把多個值裝成元組或者字典宿接,比如傳多個參數(shù)的時候赘淮,就需要把多個元素進(jìn)行裝包,拆包睦霎,就是把元組或者字典轉(zhuǎn)成多個值梢卸;如下面代碼所示,把1.2.3三個值轉(zhuǎn)為了元組副女,就是裝包過程蛤高,把agrs元組轉(zhuǎn)成了三個值就是拆包的過程;

def sum(a,b,c):

????print(a+b+c)

def tupl(*args):

????print(args)

????print(*args)

????sum(*args)

tupl(1,2,3)

缺省參數(shù):如下代碼所示,name就是缺省參數(shù)戴陡,缺省參數(shù)就是調(diào)用函數(shù)的時候可以寫也不可以不寫的參數(shù)塞绿,默認(rèn)有一個默認(rèn)值,如下代碼默認(rèn)值就是monther;

def love(name='monther'):

????print("i love",name)

love()

值傳遞和引用傳遞:值傳遞的意思是說我只是把內(nèi)容給了你恤批,就好像我一個籮筐有五個蘋果位隶,我只是給了你五個蘋果,我的籮筐沒給你开皿,籮筐還是我的籮筐;引用傳遞呢就是我不僅把五個蘋果給你了篮昧,我還把籮筐都給你了赋荆;籮筐都給你的意思就是如果你重新裝了6個蘋果,那么我從籮筐取出來就會是6個蘋果懊昨,說白了就是你可以改變我給的那個變量窄潭,但是在python里面又分了不可變類型和可變類型,這樣的話酵颁,你就只能改變可變類型的變量嫉你,不可變類型是不能改變的,不可變類型改變之后躏惋,已經(jīng)不是同一個變量了幽污;那么針對python語言,使用的都是引用傳遞簿姨,下面上代碼:

1.這段代碼驗證了當(dāng)x的值發(fā)生改變之后距误,他的id其實已經(jīng)改變了,換句話說他已經(jīng)不是以前的x了

def transfer(x):

????print(id(x))

????x+=1

????print(id(x))

y=5

print(id(y))

transfer(y)

print(id(y))

結(jié)果:

1734399856 1734399856 1734399872 1734399856

2.這段代碼驗證了可變類型是可變改變他本身的值:

def transfer(x):

????x.append(5)

y=[1,2]

transfer(y)

print(y)

結(jié)果:

[1, 2, 5]

補充:Python的每個對象都分為可變和不可變扁位,主要的核心類型中准潭,數(shù)字、字符串域仇、元組是不可變的刑然,列表、字典是可變的暇务。

函數(shù)的返回值:

在代碼塊的最后加一個return語句就可以把值返回出去泼掠,需要注意的是,return后續(xù)的代碼不會執(zhí)行

def sum(x,y):

????s=x+y

????d=x-y

????return s,d

result=sum(9,5)

print(result)

函數(shù)使用描述:其實就是注釋垦细,對于函數(shù)的注釋有他的規(guī)范武鲁,就是在代碼塊的第一行,用三個雙引號進(jìn)行注釋蝠检,注釋需要說清的幾個點沐鼠,函數(shù)功能,參數(shù)類型,參數(shù)意義饲梭,返回值類型以及意義乘盖;獲取函數(shù)的注釋用help函數(shù)獲取憔涉;

def sum(x,y=1):

????""" 求兩個數(shù)的和

????:param x: 數(shù)值1订框,數(shù)值類型,必填

????:param y: 數(shù)值2兜叨,數(shù)值類型穿扳,選填,默認(rèn)值為1

????:return: 兩個和国旷,數(shù)值類型 """

????result=x+y

????return result

help(sum)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末矛物,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子跪但,更是在濱河造成了極大的恐慌履羞,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屡久,死亡現(xiàn)場離奇詭異忆首,居然都是意外死亡,警方通過查閱死者的電腦和手機被环,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門糙及,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人筛欢,你說我怎么就攤上這事丁鹉。” “怎么了悴能?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵揣钦,是天一觀的道長。 經(jīng)常有香客問我漠酿,道長冯凹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任炒嘲,我火速辦了婚禮宇姚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘夫凸。我一直安慰自己浑劳,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布夭拌。 她就那樣靜靜地躺著魔熏,像睡著了一般衷咽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蒜绽,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天镶骗,我揣著相機與錄音,去河邊找鬼躲雅。 笑死鼎姊,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的相赁。 我是一名探鬼主播相寇,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼钮科!你這毒婦竟也來了唤衫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤跺嗽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后页藻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桨嫁,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年份帐,在試婚紗的時候發(fā)現(xiàn)自己被綠了璃吧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡废境,死狀恐怖畜挨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情噩凹,我是刑警寧澤巴元,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站驮宴,受9級特大地震影響逮刨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜堵泽,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一修己、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迎罗,春花似錦睬愤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽砂豌。三九已至,卻和暖如春啥刻,著一層夾襖步出監(jiān)牢的瞬間奸鸯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工可帽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留娄涩,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓映跟,卻偏偏與公主長得像蓄拣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子努隙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

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