可變引數之列表拆裝 總結

2021-10-23 05:10:17 字數 2326 閱讀 5051

#練習

#1.def

func

(a,*args)

:print

(a,args)

#呼叫:

func(2,

3,4,

5)func(2,

[1,2

,3,4

])func(2,

3,[1

,2,3

,4,5

])func(2,

3,*[

1,2,

3,4,

5])func(5,

6,(4

,5,7

),9)

#2.def

func

(a,b=

10,c=3,

**kwargs)

:print

(a,b,c,kwargs)

func(1)

func(

2,b=10)

#func(3,5,7,a=1,b=2)#有錯

func(3,

5,7,x=

1,y=2)

#3.def

func

(a,*args,

**kwargs)

:print

(a,args,kwargs)t=(

1,2,

3,4)

func(

1,t)l=[

2,5,

8]func(

1,l,x=

9,y=6)

deffunc1

(name,

*args):if

len(args)

>0:

for i in args:

#把列表拆了裝成了元組,('html','mysql','python')

print

('{}學過了{}'

.format

(name,i)

)else

:print

('沒有學任何程式設計知識'

)couses=

['html'

,'mysql'

,'python'

]func1(

'xiaozhang'

,*couses)

#拆包'''

無引數函式:

def func()

pass

func()

有引數的函式:

1.普通引數

def func(name,age):

pass

func('aa',18) ----->形參和實參的個數要一致

2.可變引數:

a. def func(*args):

pass

func()----->函式呼叫時,實參的個數可以沒有,也可以多個 *不能是關鍵字引數

例如:func(4) func(5,'h')

b. def func(**kwargs):

pass

func(a=1,b=2)------>函式呼叫時,實參的個數可以沒有,也可以多個,**必須是關鍵字引數

c. def func(*args,**kwargs):

pass

list=[1,3]

dict1=

func(*list1,**dict1) #func(1,3,'1'='a','2'='b')

d:混用

def func(name,*args,**kwargs):

pass

func('tom')----->必須賦值

3.預設值

def func(name,age=18):

pass

func('tom')---->tom 18

func('tom',age=20)

'''

執行結果:

2(3

,4,5

)2([

1,2,

3,4]

,)2(

3,[1

,2,3

,4,5

])2(

3,1,

2,3,

4,5)

5(6,

(4,5

,7),

9)110

32103

3571

((1,

2,3,

4),)

1(2,

5,8)

xiaozhang學過了html

xiaozhang學過了mysql

xiaozhang學過了python

自動拆裝箱 可變引數

裝箱 把基本的資料型別轉換成包裝類 拆箱 把包裝類轉換成基本的資料型別 自動裝箱 integer i 10 自動拆箱 int m i 在jdk1.4裡面如何實現裝箱和拆箱 public void test1 裝箱 integer m new integer 10 拆箱 int a m.intvalu...

可變引數列表

模擬實現printf函式 va list是在c語言中解決變參問題的一組巨集,所在標頭檔案 include 用於獲取不確定個數的引數 va start,函式名稱,讀取可變引數的過程其實就是在堆疊中,使用指標,遍歷堆疊段中的引數列表,從低位址到高位址乙個乙個地把引數內容讀出來的過程 va arg,這個巨...

可變引數列表

小二,上 class a public class varargs two param static void twostringparam string a,string b three param 參照上兩種寫法,一直往後面加。是不是感覺很憂傷 幸好這不是真的。string.a static v...