9.Python中的函數(shù)

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í)參.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,618評(píng)論 19 139
  • 〇、前言 本文共108張圖,流量黨請(qǐng)慎重! 歷時(shí)1個(gè)半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識(shí)的框架詳細(xì)梳理了一遍。 ...
    Raxxie閱讀 19,589評(píng)論 17 410
  • 今天天氣格外的好。早上打開手機(jī)看到屏保自動(dòng)換成父親節(jié)的照片提醒著我今天是爸爸的節(jié)日。我趁著自己還有些感性的沖動(dòng)抓緊...
    歆曼閱讀 551評(píng)論 4 1
  • 什么是微交互?微交互是以用戶完成單個(gè)任務(wù)為中心所設(shè)計(jì)的某些連續(xù)性的微妙瞬間?,F(xiàn)在,幾乎我們周圍所有的應(yīng)用程序中都無...
    三達(dá)不留點(diǎn)gpj閱讀 1,124評(píng)論 2 18
  • 【日更130】 我的“微博成癮癥”貌似越來越嚴(yán)重了,如果它有“程度輕重”的差別,我大概就屬于最嚴(yán)重的那一類。 現(xiàn)在...
    唐斬2086閱讀 454評(píng)論 0 0

友情鏈接更多精彩內(nèi)容