一般來說,函數(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]
新聞熱點
疑難解答