亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python3基礎之函數用法

系統 1815 0

一般來說,函數(function)是組織好的、可重復使用的、具有一定功能的代碼段。函數能提高應用的模塊性和代碼的重復利用率,在Python中已經提供了很多的內建函數,比如print(),同時Python還允許用戶自定義函數。

本文就來實例總結一下Python3的函數用法,具體內容如下:

一、定義

定義函數使用關鍵字def,后接函數名和放在圓括號( )中的可選參數列表,函數內容以冒號起始并且縮進。一般格式如下:

            
def 函數名(參數列表): 
  """文檔字符串""" 
  函數體 
  return [expression] 

          

注意: 參數列表可選,文檔字符串可選,return語句可選。

示例:

            
def fib(n): 
  """Print a Fibonacci series""" 
  a, b = 0, 1 
  while b < n: 
    print(b, end=' ') 
    a, b = b, a+b 
  print() 
 
fib(2000) # call 
f = fib  # assignment 
f(2000) 

          

函數名的值是一種用戶自定義的函數類型。函數名的值可以被賦予另一個名字,使其也能作為函數使用。

二、函數變量作用域

在函數內部定義的變量擁有一個局部作用域,在函數外定義的擁有全局作用域。注意:在函數內部可以引用全局變量,但無法對其賦值(除非用global進行聲明)。

            
a = 5     # 全局變量a 
 
def func1(): 
  print('func1() print a =', a) 
 
def func2(): 
  a = 21  # 局部變量a 
  print('func2() print a =', a)  
 
def func3(): 
  global a 
  a = 10  # 修改全局變量a 
  print('func3() print a =', a) 
 
func1() 
func2() 
func3() 
print('the global a =', a) 


          

三、函數調用

1、普通調用

與其他語言中函數調用一樣,Python中在調用函數時,需要給定和形參相同個數的實參并按順序一一對應。

            
def fun(name, age, gender): 
  print('Name:',name,'Age:',age,'Gender:',gender,end=' ') 
  print() 
 
fun('Jack', 20, 'man') # call 

          


2、使用關鍵字參數調用函數

函數也可以通過keyword=value 形式的關鍵字參數來調用,因為我們明確指出了對應關系,所以參數的順序也就無關緊要了。

            
def fun(name, age, gender): 
  print('Name:',name,'Age:',age,'Gender:',gender,end=' ') 
  print() 
 
fun(gender='man', name='Jack', age=20) # using keyword arguments 


          

3、調用具有默認實參的函數

Python中的函數也可以給一個或多個參數指定默認值,這樣在調用時可以選擇性地省略該參數:

            
def fun(a, b, c=5): 
  print(a+b+c) 
 
fun(1,2) 
fun(1,2,3) 


          

注意: 通常情況下默認值只被計算一次,但如果默認值是一個可變對象時會有所不同, 如列表, 字典, 或大多類的對象時。例如,下面的函數在隨后的調用中會累積參數值

            
def fun(a, L=[]): 
  L.append(a) 
  print(L) 
 
fun(1) # 輸出[1] 
fun(2) # 輸出[1, 2] 
fun(3) # 輸出[1, 2, 3] 


          

4、調用可變參數函數

通過在形參前加一個星號(*)或兩個星號(**)來指定函數可以接收任意數量的實參。

            
def fun(*args): 
  print(type(args)) 
  print(args) 
 
fun(1,2,3,4,5,6) 
 
# 輸出: 
# 
            
               
# (1, 2, 3, 4, 5, 6) 

def fun(**args): 
  print(type(args)) 
  print(args) 
 
fun(a=1,b=2,c=3,d=4,e=5) 
 
# 輸出: 
# 
              
                 
# {'d': 4, 'e': 5, 'b': 2, 'c': 3, 'a': 1} 


              
            
          

從兩個示例的輸出可以看出:當參數形如*args時,傳遞給函數的任意個實參會按位置被包裝進一個元組(tuple);當參數形如**args時,傳遞給函數的任意個key=value實參會被包裝進一個字典(dict)。

5、通過解包參數調用函數

上一點說到傳遞任意數量的實參時會將它們打包進一個元組或字典,當然有打包也就有解包(unpacking)。通過 單星號和雙星號對List、Tuple和Dictionary進行解包:

            
def fun(a=1, b=2, c=3): 
  print(a+b+c) 
 
fun()  # 正常調用 
list1 = [11, 22, 33] 
dict1 = {'a':40, 'b':50, 'c':60} 
fun(*list1)  # 解包列表 
fun(**dict1) # 解包字典 
 
# 輸出: 
# 6 
# 66 
# 150 


          

注:*用于解包Sequence,**用于解包字典。解包字典會得到一系列的key=value,故本質上就是使用關鍵字參數調用函數。

四、lambda表達式

lambda關鍵詞能創建小型匿名函數。lambda函數能接收任何數量的參數但只能返回一個表達式的值,它的一般形式如下:

            
lambda [arg1 [,arg2,.....argn]] : expression 

          

lambda表達式可以在任何需要函數對象的地方使用,它們在語法上被限制為單一的表達式:

            
f = lambda x, y: x+y 
print(f(10, 20)) 

def make_fun(n): 
  return lambda x: x+n 
 
f = make_fun(15) 
print(f(5)) 


          

五、文檔字符串

函式體的第一個語句可以是三引號括起來的字符串, 這個字符串就是函數的文檔字符串,或稱為docstring 。我們可以使用print(function.__doc__)輸出文檔:

            
def fun(): 
  """Some information of this function. 
  This is documentation string.""" 
  return 
 
print(fun.__doc__) 


          

文檔字符串主要用于描述一些關于函數的信息,讓用戶交互地瀏覽和輸出 。建議養成在代碼中添加文檔字符串的好習慣。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久9966精品国产免费 | 亚洲天堂久久新 | 色狠狠一区 | 97人人澡| 精品成人久久 | 成年香蕉大黄美女美女 | 日日操影院 | 欧美精品久久久久久久小说 | 888米奇色狠狠俺去啦 | 老太婆性杂交毛片 | 性做久久久久久久 | 亚洲国产精品久久久久婷婷软件 | 爱爱日韩| 精品一区二区三区免费爱 | 亚洲精品96欧美一区二区 | 国产福利在线永久视频 | 欧美一级www片免费观看 | 久久综合久久自在自线精品自 | 国产成人在线免费 | 亚洲欧美日韩一级特黄在线 | 久久精品久久久久久久久人 | 久久成人在线观看 | 国产玖玖在线观看 | 国产精品第 | 日日干夜夜拍 | 久久免费视屏 | 久久久久亚洲精品一区二区三区 | 天天色天天干天天射 | 久久久久久亚洲精品 | www.777奇米| 精品亚洲在线 | 中文字幕在线一区 | 九九影院韩国理伦片 | 国产高清专区 | 九九久久国产精品免费热6 九九久久精品 | 精品一区二区三区在线观看 | 第一福利在线 | 久久精品69 | 精品国产线拍大陆久久尤物 | 久久首页 | 国产亚洲精品久久综合影院 |