PYTHON 函式特性

2021-07-01 18:44:29 字數 1419 閱讀 2049

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

定義預設引數

定義函式的時候,還可以有預設引數。

由於函式的引數按從左到右的順序匹配,所以預設引數只能定義在必需引數的後面:

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

如:

# ok:

deffn1

(a, b=1, c=2):

pass

# error:

deffn2

(a=1, b):

pass

1. 高階特性:
例如:dict預設迭代的是key值。

forvalue

in d.itervalues() # 迭代

for k, v in d.iteritems()

通過collections模組的iterable型別判斷:

from collections import iterable

isinstance('abc', iterable) # str是否可迭代

for i, value

in enumerate(['a', 'b', 'c']):

enumerate()把list返回乙個包含索引-value值得形式。

體會快速生成列表的方法

[x * x for x in

range(1, 11) if x % 2 == 0]

[m + n for m in

'abc' for n in

'xyz']

[x * x for x in

range(1, 11)]

def

fib(max):

n, a, b = 0, 0, 1

while n < max:

yield b

a, b = b, a + b

n = n + 1

跟函式不同的一點:變成generator的函式,在每次呼叫next()的時候執行,遇到yield語句返回,再次執行時從上次返回的yield語句處繼續執行

2.函式式程式設計

函式式程式設計的乙個特點就是,允許把函式本身作為引數傳入另乙個函式,還允許返回乙個函式!

map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])

lambda x: x * x 就是

deff

(x):

return x * x

Python函式高階特性

切片 擷取元素,可操作list,tuple,string l list range 100 0,1,2,3,99 l 0 10 l 10 擷取前10個數 0,1,2,9 l 10 擷取後10個數 90,91,92,99 l 10 20 擷取10 20位置的元素 10,11,12,13,19 l 10...

Python函式程式語言特性

usr bin env python coding utf 8 functional.py def foo x,y,args sum x y for n in args sum n return sum def main print foo 1,2,3,4 filter func,seq 用函式判斷...

python函式的特性。再後面再講函式裝飾器。

1.函式作為引數傳遞 函式作為引數傳遞 def c x return x 1 def d f return f 3 e d c print e 輸出 4說明乙個函式可以接受另外乙個函式物件作為自己的引數,並對函式物件進行處理。2.函式作為變數傳遞 def a x return x 1 b a pri...