函數(shù)(二)

參數(shù)

1可變,不可變

2必選

3默認(rèn)

4可變

5關(guān)鍵字



在函數(shù)之前,定義的所有的變量都是全局變量。一旦定義了,后面所有的地方一直訪問(wèn)使用。

在函數(shù)里定義的變量,都是局部變量,一旦函數(shù)運(yùn)行完畢,局部變量就會(huì)被垃圾回收機(jī)制回收。

局部變量:1、參數(shù)

?????????????????? 2、在函數(shù)里直接定義的變量



可變參數(shù)

* :元組

在Python函數(shù)中,還可以定義可變參數(shù)。顧名思義,可變參數(shù)就是傳入的參數(shù)個(gè)數(shù)是可變的,可以是1個(gè)、2個(gè)到任意個(gè),還可以是0個(gè)。參數(shù)組裝成一個(gè)tutple

def calc(*numbers):

sum = 0

for n in numbers:

sum = sum + n * n

return sum


**? :字典

變參數(shù)允許你傳入0個(gè)或任意個(gè)參數(shù),這些可變參數(shù)在函數(shù)調(diào)用時(shí)自動(dòng)組裝為一個(gè)tuple。而關(guān)鍵字參數(shù)允許你傳入0個(gè)或任意個(gè)含參數(shù)名的參數(shù),這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動(dòng)組裝為一個(gè)dict。

def person(name, age, **kw):

print('name:', name, 'age:', age, 'other:', kw)


參數(shù)組合排序:def f(a,b=1,*c,**d)

函數(shù)內(nèi)部修改全局變量,報(bào)錯(cuò)。函數(shù)內(nèi)部不能修改全局變量。

需要修改的話,需要函數(shù)的第一行加global就可以獲取/設(shè)置全局變量

pass占位符


作用域


小結(jié)


遞歸

遞歸是自己調(diào)用自己的話,迭代就是A不停的調(diào)用B.

遞歸中一定有迭代,但是迭代中不一定有遞歸,大部分可以相互轉(zhuǎn)換.能用迭代的不用遞歸,遞歸調(diào)用函數(shù),浪費(fèi)空間,并且遞歸太深容易造成堆棧的溢出.使用的時(shí)候要慎重。


python語(yǔ)言缺陷:遞歸在python語(yǔ)言里面運(yùn)行很慢


匿名函數(shù) lambda


最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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