概要:函數是組織好的,可重複使用的,用來實現單一,或相關聯功能的代碼段。函數能提高應用的模塊性,和代碼的重複利用率。
一、定義函數
語法格式:
def 函數名(參數列表):
函數體
示例:
>>> def pow(x):
"返回傳入數字的平方"
return x * x
>>> pow(3)
9
二、參數類型
函數的參數有必需參數,不定長參數,關鍵字參數,默認參數等,用法見示例,詳情可查看w3cschool
def myprint(name, *hobby, **kw):
print("name:{}".format(name))
print("hobby:", end=" ")
for i in hobby:
print(i, end=" ")
if 'age' in kw:
print("age:{}".format(kw.get('age')))
>>> myprint('lisi', 'book','music', age=18)
name:lisi
hobby: book music age:18
>>> myprint('lisi', 'book','music',sex='man')
name:lisi
hobby: book music
三、高階函數
定義:函數作爲參數的函數爲高階函數
Python內置的幾個高階函數示例:
- map函數
函數說明:map(func, iterator):
map函數有兩個參數,第一個參數func爲函數,第二個參數是一個序列。map函數會對序列的每一個元素都調用一遍func函數。並返回處理後的迭代器,可以通過list函數轉換爲列表。
示例
>>> def pow(x):
return x * x
>>> re = list(map(pow, [1, 2, 3]))
>>> print(re)
[1, 4, 9]
- reduce函數
函數說明:reduce(func, iterator):
第一個參數func是函數,函數入參兩個,第二個參數是一個序列,reduce函數會迭代序列的每一個元素,將該元素與後面的元素按func函數處理,並返回最終結果。
示例:
>>> def add(x, y):
return x + y
>>> re = reduce(add, [1, 2, 3, 4])
>>> print(re)
10
- filter函數
函數說明:filter(func, iterator):
filter函數的參數依然爲一個函數和序列,該函數起到過濾作用,通過func函數作用於每一個元素,根據返回結果是True或False,決定保留或刪除該元素。
並返回一個迭代器,與map函數類似。
示例:
>>> def even(x):
try:
if x % 2 == 0:
return True
except Exception:
return False
return False
>>> re = list(filter(even, [1, 2, 3, 4]))
>>> print(re)
[2, 4]