默認參數html
1
2
3
4
5
6
7
8
9
10
|
def
stu_register(name,age,country,course):
print
(
"----註冊學生信息------"
)
print
(
"姓名:"
,name)
print
(
"age:"
,age)
print
(
"國籍:"
,country)
print
(
"課程:"
,course)
stu_register(
"王山炮"
,
22
,
"CN"
,
"python_devops"
)
stu_register(
"張叫春"
,
21
,
"CN"
,
"linux"
)
stu_register(
"劉老根"
,
25
,
"CN"
,
"linux"
)
|
發現 country 這個參數 基本都 是"CN", 就像咱們在網站上註冊用戶,像國籍這種信息,你不填寫,默認就會是 中國, 這就是經過默認參數實現的,把country變成默認參數很是簡單python
1
|
def
stu_register(name,age,course,country
=
"CN"
):
|
這樣,這個參數在調用時不指定,那默認就是CN,指定了的話,就用你指定的值。linux
另外,你可能注意到了,在把country變成默認參數後,我同時把它的位置移到了最後面,爲何呢?函數
關鍵參數
正常狀況下,給函數傳參數要按順序,不想按順序就能夠用關鍵參數,只需指定參數名便可,但記住一個要求就是,關鍵參數必須放在位置參數以後。post
1
|
stu_register(age
=
22
,name
=
'alex'
,course
=
"python"
,)
|
非固定參數網站
若你的函數在定義時不肯定用戶想傳入多少個參數,就可使用非固定參數url
1
2
3
4
5
6
7
8
9
10
|
def
stu_register(name,age,
*
args):
# *args 會把多傳入的參數變成一個元組形式
print
(name,age,args)
stu_register(
"Alex"
,
22
)
#輸出
#Alex 22 () #後面這個()就是args,只是由於沒傳值,因此爲空
stu_register(
"Jack"
,
32
,
"CN"
,
"Python"
)
#輸出
# Jack 32 ('CN', 'Python')
|
還能夠有一個**kwargsspa
1
2
3
4
5
6
7
8
9
10
|
def
stu_register(name,age,
*
args,
*
*
kwargs):
# *kwargs 會把多傳入的參數變成一個dict形式
print
(name,age,args,kwargs)
stu_register(
"Alex"
,
22
)
#輸出
#Alex 22 () {}#後面這個{}就是kwargs,只是由於沒傳值,因此爲空
stu_register(
"Jack"
,
32
,
"CN"
,
"Python"
,sex
=
"Male"
,province
=
"ShanDong"
)
#輸出
# Jack 32 ('CN', 'Python') {'province': 'ShanDong', 'sex': 'Male'}
|
代碼實例:code
1 def print_info(name,age): 2 print('Name: %s'%name) 3 print('Age: %s'%age) 4 5 print_info('alex',35) #必須參數 6 7 def print_info(name,age): 8 print('Name: %s'%name) 9 print('Age: %s'%age) 10 11 print_info(age=35,name='alex') #關鍵字參數 12 13 def print_info(name,age,sex='male'): 14 print('Name: %s'%name) 15 print('Age: %s'%age) 16 print('Sex: %s'%sex) 17 18 print_info('alex',35) 19 print_info('wuchao',20) 20 print_info('jinxin',18) 21 print_info('xiaoyu',18,'female') #默認參數(必須放在必須參數的後面) 22 23 def add(x,y,z): #low加法器 24 print(x+y+z) 25 26 add(1,2,3) 27 28 def add(*args): #不定長參數(高大上加法器) 29 #print(args) 30 sum = 0 31 for i in args: 32 sum += i 33 print(sum) 34 35 add(1,2,3,4,5,6) #傳入的是無命名參數 36 37 def print_info(*args, **kwargs): # 不定長參數(鍵值對) 38 39 print(args) # ('alex', 35, 'male') 無命名參數被args接收 40 print(kwargs) # {'jop': 'IT', 'hobby': 'girl', 'height': 188} 聲明參數被kwargs接收 41 42 43 print_info('alex', 35, 'male', jop='IT', hobby='girl', height=188) # 傳入的是聲明參數 44 45 46 def print_info(**kwargs): # 不定長參數(鍵值對) 47 48 print(kwargs) # {'jop': 'IT', 'hobby': 'girl', 'height': 188} 聲明參數被kwargs接收 49 for i in kwargs: 50 print('%s:%s'%(i,kwargs[i])) 51 print_info(jop='IT', hobby='girl', height=188) # 傳入的是聲明參數 52 53 #不定長參數的位置 54 #*args放在左邊,**kwsrgs放在後邊 55 def f(*args,**kwargs): #無命名參數必須放左邊,聲明參數放右邊 56 pass 57 f(1,2,[3,4,5],name='alex') 58 59 def print_info(sex='male',*args,**kwargs): # 不定長參數(鍵值對) 默認參數必須放在不定長參數的左邊 60 print(args) 61 62 print(kwargs) 63 for i in kwargs: 64 print('%s:%s'%(i,kwargs[i])) 65 print_info('female',1,2,3) 66 print_info(1,2,3,'female',name='alex') 67 68 #函數參數的優先級 69 def dfun(name,age=22,*args,**kwargs):#必須參數-關鍵字參數-不定長(無命名參數)-不定長(聲明參數)
函數的返回值
要想獲取函數的執行結果,就能夠用return語句把結果返回htm
注意:
- 函數在執行過程當中只要遇到return語句,就會中止執行並返回結果,so 也能夠理解爲 return 語句表明着函數的結束
- 若是未在函數中指定return,那這個函數的返回值爲None
- return多個對象,解釋器會把這多個對象組裝成一個元組做爲一個總體結果輸出