概要:函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。
一、定义函数
语法格式:
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]