Python學習5 函式

2021-07-30 18:25:17 字數 1789 閱讀 3725

**廖雪峰的部落格

內建函式:

使用 help(**) 可以檢視函式**的幫助資訊

**:python內建函式

定義函式:

在python中,定義乙個函式要使用def語句,依次寫出函式名、括號、括號中的引數和冒號,最後,在縮排塊中編寫函式體,函式的返回值用return語句返回。如下面所示:

def my_abs(x):

if x >= 0:

return x

else:

return -x

注意:(1)使用pass可以定義空函式,便於搭建整體**構架;

(2)函式中有時需要檢查引數型別,使用語句:

if not isinstance(x, (int, float)):

raise typeerror('bad operand type')

(3)函式可以返回多個值,本質上是返回乙個tuple,按照對應位置賦值。

函式的引數:

函式使用預設引數。當函式有多個引數時,把變化大的引數放前面,變化小的引數放後面。必選引數在前,預設引數在後面。

預設引數必須指向不變物件。

def power(x, n=2):

s = 1

while n > 0:

n = n - 1

s = s * x

return s

可以把函式的引數設定為可變引數:

def calc(*numbers):

sum = 0

for n in numbers:

sum = sum + n * n

return sum

對於已有的list或tuple,要呼叫可變引數的函式,可以採用如下方式:

nums = [1, 2, 3]

calc(*nums)

關鍵字引數:

關鍵字引數允許傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個dict。

def person(name, age, **kw):

print 'name:', name, 'age:', age, 'other:', kw

person('adam', 45, gender='m', job='engineer')

對於已有的dict,可以採用如下方式呼叫關鍵字引數:

kw =

person('jack', 24, **kw)

引數組合:

在python中定義函式,可以用必選引數、預設引數、可變引數和關鍵字引數,可以一起使用,或者只用其中某些.但引數定義的順序必須是:必選引數、預設引數、可變引數和關鍵字引數。

def func(a, b, c=0, *args, **kw):

print 'a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw

func(1, 2, 3, 'a', 'b', x=99)

a = 1 b = 2 c = 3 args = ('a', 'b') kw =

遞迴函式:

如果乙個函式在內部呼叫其自身,這個函式就是遞迴函式。遞迴函式的優點是定義簡單,邏輯清晰。但遞迴存在棧溢位的問題。在計算機中,函式呼叫是通過棧(stack)這種資料結構實現的,每當進入乙個函式呼叫,棧就會加一層棧幀,每當函式返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,遞迴呼叫的次數過多,會導致棧溢位。

乙個計算n!的遞迴函式:

def fact(n):

if n==1:

return 1

return n * fact(n - 1)

Python學習筆記(5) 函式

encoding gbk 定義函式 def greet user username print hello,username.title greet user jim 定義具有返回值的函式 def get formatted name first name,last name full name f...

Python基礎學習 內建函式(5)

41.max iterable,key,default max arg1,arg2,args key 該函式返回iterable引數 必須是可迭代的 內最大的元素,或者給出所有引數中最大的元素。key引數與default是可選的關鍵字引數。key引數必須是單引數排序函式 如果iterable引數為空...

python2 7學習筆記(5) 函式

內建很多函式,需要知道那個函式幹什麼的話,可以用 help 函式名 來獲取說明文件 不過都是英文的,老子看不懂啊。不過慢慢看還是能大致理解的 可以將函式名賦值給乙個變數,相當於給函式起乙個別名 在python中,定義乙個函式要使用def語句,依次寫出函式名 括號 括號中的引數和冒號 然後,在縮排塊中...