函数
基础
简单定义
可以位置传参(如下) 也可以关键字传参(arg=1)
def func_name(arg(形参,多个参数以逗号隔开,可以带默认值,带默认值参数放在不带默认值函数之后 截图)):
gloal a ———在这个函数体中使用全局变量
a = 1 ——-局部变量
函数体(print ‘hello’)
func_name(实参(数字、字符)) —–函数调用
可变参数 (可变位置参数 可变关键字参数)
可变位置传参
def func_name(*arg):
函数体exp #arg is tuple
print arg
func_name(1,2,3,4)
li = [1,2,3,4]
func_name(*li(将参数解包传送,li否则整体传送为源组内的一个元素))
输出为(1,2,3,4)
如果func_name(li)
输出结果则为[(1,2,3,4),]
函数可以嵌套调用
可变关键字传参
def func_name(**kwarg)
#kwarg is dict
if kwarg.has_key(db) —-判断db是否存在
pass
混合使用
可变参数在非可变参数之后 – 截图
如果为关键字传参 则顺序无所谓
当函数return时 return的是一个源组
a=1,2 输出(1,2)
a,b=(1,2) 输出 a=1 b=2
递归函数
函数体内调用自身函数 python内最大深度为1000层 必须有一个条件使其退出
函数遇到return语句 后面语句不再执行 直接结束这个函数
def fact(n):
if n<=1: ———可以使其退出的条件
return n
return fact(n-1)*n
a = fact(n)
print a ———–此函数输出结果为n!n的阶乘
可以赋值给变量
函数是一等对象 可以进行赋值
eg:def func_name():
return ‘test’
func = func_name 若加上()则为返回值
func 与func_name 为引用赋值 为同一块内存空间
func(func2) func2若加小括号则为return值
如图 su = func_re(1,2)
则返回一个元祖值(x+y,x*y)
在哪调用在哪传参
def func(f):
print ‘call func’
f(1,2) —–在这里调用 故在此处传参
def func2(x,y):
print ‘call func2’,x+y
func(func2)
高阶函数 截图图 嘻嘻。。。
filter map reduce
map 列表中所有元素执行一遍 返回执行结果
map(函数,列表) —-执行这个函数
reduce –前两个操作结果与后一个相操作 需要两个参数