函數【三】參數及返回值

函數的參數及返回值

 

默認參數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

注意:

  1. 函數在執行過程當中只要遇到return語句,就會中止執行並返回結果,so 也能夠理解爲 return 語句表明着函數的結束
  2. 若是未在函數中指定return,那這個函數的返回值爲None
  3. return多個對象,解釋器會把這多個對象組裝成一個元組做爲一個總體結果輸出
相關文章
相關標籤/搜索