在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...