在Python函數(shù)中,還可以定義可變參數(shù)。顧名思義,可變參數(shù)就是傳入的參數(shù)個(gè)數(shù)是可變的,可以是1個(gè)、2個(gè)到任意個(gè),還可以是0個(gè)。
我們以數(shù)學(xué)題為例子,給定一組數(shù)字a,b,c……,請(qǐng)計(jì)算a2+b2+c2+……。
1defcalc(*numbers):
2sum=0
3forninnumbers:
4sum=sum+n*n
5returnsum
6
7#測(cè)試
8#調(diào)用該函數(shù)時(shí),可以傳入任意個(gè)參數(shù),包括0個(gè)參數(shù)
9>>>calc(1,2)
105
11>>>calc()
120
13
14#Python允許你在list或tuple前面加一個(gè)*號(hào),把list或tuple的元素變成可變參數(shù)傳進(jìn)去;*nums表示把nums這個(gè)list的所有元素作為可變參數(shù)傳進(jìn)去。這種寫法相當(dāng)有用,而且很常見
15>>>nums=[1,2,3]
16>>>calc(*nums)
1714
成員運(yùn)算符:notin、in(判斷某個(gè)單詞里是不是有某個(gè)字母)
成員運(yùn)算符用來判斷一個(gè)元素是否是另一個(gè)元素的成員。比如說我們可以判斷“hello”中是否有“h”,得到的結(jié)果也是True或者False。
1>>>"h"in"hello"#這里的意思是“h”在“Hello”中,判斷后結(jié)果為True
2True
3>>>"h"notin"hello"#這里的意思是“h”不在“Hello”中,判斷后結(jié)果為False
4False
身份運(yùn)算符:is、isnot(講數(shù)據(jù)類型時(shí)講解,一般用來判斷變量的數(shù)據(jù)類型)
用來判斷身份。
1>>>a=123456
2>>>b=a
3>>>bisa#判斷a和b是不是同一個(gè)123456
4True
5>>>c=123456
6>>>cisa#判斷c和a是不是同一個(gè)123456
7False
8>>>cisnota#判斷c和a是不是不是同一個(gè)123456
9True
這里我們首先將123456賦值給a,后有將a賦值給b,這樣其實(shí)是a和b的值都是123456,但是后面c的值也是123456,為什么第一次aisb的結(jié)果為True,c和a的結(jié)果為False呢?
原因是這樣的:我們知道程序是運(yùn)行在內(nèi)存里的,第一次我們將123456賦值給a的時(shí)候,其實(shí)是在內(nèi)存里開辟了一塊空間,將123456放在這塊空間里,為了找到這里的123456,會(huì)有一個(gè)指向這塊空間的地址,這個(gè)地址叫做內(nèi)存地址,是123456存儲(chǔ)在內(nèi)存中的地址。a其實(shí)指向的就是存儲(chǔ)123456的內(nèi)存空間的地址。執(zhí)行了b=a,就是讓b指向的地址和a一樣。之后我們執(zhí)行了c=123456,這里就會(huì)再開辟一塊內(nèi)存空間,并將指向該空間的內(nèi)存地址賦值給c,這樣的話,a和b指向的是同一個(gè)123456,c指向的是另外一個(gè)123456。
以上內(nèi)容為大家介紹了python可變參數(shù),希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。