Python 函数
def 函数名(参数1,参数2):
return 返回值
函数文档
函数文档和注释一样不会被打印
>>> def func():
'这里面是函数文档'
#这里是注释
return 1+2
>>> print(func())
3
用特定方法可以看到
>>> help(func)
Help on function func in module __main__:
func()
这里面是函数文档
关键字参数
>>> def func(name,age):
print(name+"+"+age)
>>> func(name="李",age="21")
李+21
默认参数
>>> def func(name="李",age="21"):
print(name+"+"+age)
>>> func()
李+21
收集参数
如果不知道函数参数有多少个可以用这种方法
>>> def func(*param):
print("传进来参数长度",len(param))
print("最后一个参数是",param[-1])
>>> func(1,"李",2,3,8)
传进来参数长度 5
最后一个参数是 8
内嵌函数
>>> def func1():
print("执行func1")
def func2():
print("执行func2")
func2()
>>> func1()
执行func1
执行func2
>>> func2() #内部函数只在外部函数中有效
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
func2()
NameError: name 'func2' is not defined
>>>
闭包
>>> def func1(x):
def func2(y):
return x*y
return func2
>>> f=func1(30)
>>> type(f)
<class 'function'>
>>> f(2)
60
>>> func1(30)(2)
60
lambda匿名函数
lambda 传入的参数: 函数进行的操作
>>> b=lambda x:x*x
>>> b
<function <lambda> at 0x03D63F60>
>>> b(3)
9
上面等于下面
>>> def func(x):
return x*x
>>> a=func(3)
>>> a
9
lambda不用写一个函数申请空间,能使代码更加简洁,但只能运行一行程序
内置函数
filter()
filter(筛选条件,需要筛选数据) 、 作用:将筛选数据通过筛选条件留下为真的
例子1:
>>> list(filter(None,[0,1,True,False]))
[1, True]
例子2:
>>> def func1(x):
return x%2
>>> temp=range(10)
>>> show=filter(func1,temp)
>>> show
<filter object at 0x012D1FD0>
>>> list(show)
[1, 3, 5, 7, 9]
等于下面
>>> list(filter(lambda x:x%2,range(10)))
[1, 3, 5, 7, 9]