#練習
#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...