python 函數 返回值 參數


practice

 1 1. 函數
 2         函數是對功能的封裝
 3         語法:
 4             def 函數名(形參列表):
 5                 函數體(代碼塊, return)
 6         調用:
 7             函數名(實參列表)
 8     2. 返回值
 9         return : 在函數執行的時候. 如果遇到return. 直接返回
10         1.如果函數什么都不寫, 不寫return, 沒有返回值. 得到的是None
11         2.在函數中間或者末尾寫return, 返回的是None
12         3.在函數中寫return 值. 返回一個值.
13         4.在函數中可以返回多個返回值, return 值1, 值2, 值3...., 接收的是元組
14     3. 參數
15         函數執行的時候給函數傳遞信息.
16         *形參:函數聲明的位置的變量
17         *實參:函數調用的時候給的具體的值
18         傳參:把實參交給形參的過程
19 
20         1. 實參:
21             1. 位置參數, 按照形參的參數位置, 給形參傳值
22             2. 關鍵字參數, 按照形參的名字給形參傳值
23             3. 混合參數. 即用位置參數, 也用關鍵參數
24         2. 形參:
25             1. 位置參數
26             2. 默認值參數 先位置后默認值
27             3. 動態參數(預習預習)
View Code

1. 函數

  函數是對功能的封裝, 結構體如下:

  聲明:  

    def  函數名 (形參)                                           

      函數體 (代碼塊  return)  

  調用:

    函數名 (實參列表)

2. 返回值

  return :  函數在執行過程中遇到 return 會直接返回,類似於循環中的 break

  1) 如果函數什么都不寫,不寫return,沒有返回值,得到的是None

  2) 中間或末尾寫return,沒有值,返回的是None, 中間出現類似break,不再執行后面的語句

  3) 在函數中寫 return 值. 返回的是值

  4)在函數中可以返回多個值,return  值1,值2,值3...  返回的形式是元組

 1 #無返回值的
 2 def yue():
 3     print('打開手機')
 4     print('打開陌陌')
 5     print('搜索心儀的對象')
 6     print('出去玩吧')
 7     print('出發')
 8 yue()
 9 print('掙錢!')
10 
11 #有返回值的
12 def yue():
13     print('打開手機')
14     print('打開陌陌')
15     print('搜索心儀的對象')
16     print('出去玩吧')
17     print('出發')
18     return(10086)
19 ret=yue()
20 print(ret)   #10086
21 
22 #有返回值的
23 def yue():
24     print('打開手機')
25     print('打開陌陌')
26     return  #可以終止函數的運行  None
27     print('搜索心儀的對象')    #之后的語句不再運行
28     print('出去玩吧')
29     print('出發')
30 ret=yue()
31 print(ret)
32 
33 # 小練習
34 def jisuan():
35     content1=int(input('請輸入數字:'))
36     content2=int(input('請輸入數字:'))
37     return(content1+content2)
38 print(jisuan())
View Code

 3. 參數

  函數執行的時候給函數傳遞信息.

  *形參: 函數聲明時位置的變量  

  *實參: 函數調用時給的具體的值

  傳參: 把實參傳遞給形參的過程

1 def yu(tools):   #形參
2     ....
3 yu('cars')   #實參

  實參形式:

    1) 位置參數, 按照形參的參數位置,給形參傳值

    2) 關鍵字參數, 按照形參的名字給形參傳值

    3) 混合參數, 即有位置參數又有關鍵字參數, 且關鍵字參數在后 

1 def chi(good_food,no_good_food,dreak,ice_cream):  #形參位置參數
2     print(good_food,no_good_food,dreak,ice_cream)
3     
4 chi('蝸牛','辣條','果汁','哈根達斯')  #位置參數
5 chi(dreak='神仙水',ice_cream='老冰棍',good_food='蓋澆飯',no_good_food='鍋包肉') #關鍵字參數
6 chi('蓋澆飯','漢堡',ice_cream='巧樂茲',dreak='營養快線') #混合參數 必須(先位置后關鍵字)

  形參形式:

    1) 位置參數

    2) 默認值參數,    先位置后默認值

    3) 動態參數 

1 def regist(name,phone,gender=''):  #形參默認值參數   默認值參數必須在參數列表的后面
2     print(name,phone,gender)
3 
4 regist('阿凡達','10086')
5 regist('阿凡提','10010')
6 regist('阿凡','10011')  #不賦值則為男
7 regist('女神','10088','')  #可以重新賦值為女

默認值參數中要注意:
 1 def extendList(val,list=[]):  #默認值 是可變的時候,多次調用,它的內存地址是一樣
 2     list.append(val)
 3     return list
 4 list1 = extendList(10)
 5 list2 = extendList(123,[])
 6 list3 = extendList('a')
 7 
 8 print('list1=%s'%list1)
 9 print('list2=%s'%list2)
10 print('list3=%s'%list3)

結果為:[10,'a'] [123] [10,'a']
 

函數的動態參數
:
1. *args 位置參數動態傳參 2. **kwargs 關鍵字參數動態傳參 形參動態傳參順序:
      位置參數 >>
*args >> 默認值 >> **kwargs
      以上參數可以任意搭配使用
      其中:默認值參數要改變默認值得話,需要用關鍵詞來改變 def func(*args, **kwargs): pass

形參的位置*,**: 聚合 實參的位置*,**: 打散

  聲明時: 聚合

 1) *args 位置參數的動態傳參 (可以同時接收多個位置參數,)  聲明時位於位置參數變量后.

 1 def chi(*food):  #參數名是food  *表示動態傳參
 2     print(food)
 3 chi('蓋澆飯','火鍋','鍋包肉')  #以元組的形式輸出
 4 #('蓋澆飯', '火鍋', '鍋包肉')
 5 
 6 def chi(name,*food):  #參數名是food  *表示動態傳參
 7     print(name+'要吃',food)
 8 chi('','蓋澆飯','火鍋','鍋包肉')
 9 # 陳要吃 ('蓋澆飯', '火鍋', '鍋包肉')
10 
11 #要將位置參數放在前面, 最好不要放后面(如下),需要用關鍵詞參數傳參
12 def chi(*food,name):  #參數名是food  *表示動態傳參
13     print(name+'要吃',food)
14 chi('蓋澆飯','火鍋','鍋包肉',name='')  #返回的是元組
15 #陳要吃 ('蓋澆飯', '火鍋', '鍋包肉')

   2) **kwargs  關鍵詞參數的動態傳參(可以同時接收多個關鍵詞參數), 聲明時位於默認值參數變量后.

1 def chi(**food):
2     print(food)
3 chi(good='狗不理',nogood='饅頭',drink='大白梨',)   #返回的是字典
4 # 輸出:{'good': '狗不理', 'nogood': '饅頭', 'drink': '大白梨'}

 

1 # 可接收所有參數
2 def func(*args, **kwargs):# 無敵 *args相當於一個聚合的作用
3     print(args, kwargs)
4 func(1,2,3,4,5,a=6,b=7,c=9)

 調用時:  打散

  1)  list, str, tuple, set 用 * 來打散     傳參后為tuple類型

1 def func(*food): # 形參:聚合, 位置參數
2     print(food)
3 lst = ["雞蛋","煎餅果子","豬蹄","滋滋冒油"]
4 func(*lst) # 打散. 把list, tuple, set, str 進行迭代打散

  2) dict, 用 ** 來打散      傳參后為dict類型

1 def func(**kwargs):
2     print(kwargs)
3 dic = {"name":'alex', 'age':'18'}
4 func(**dic) # 打散成關鍵字參數 

4. 函數的注釋

  func.__doc__      查看注釋

 1 def func(a, b):
 2     """
 3     這個函數是用來計算a和b的和
 4     :param a: 第一個數據
 5     :param b: 第二個數據
 6     :return: 返回的是兩個數的和
 7     """
 8     return a + b
 9 
10 print(func.__doc__) # 查看注釋文檔,ocument文檔

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM