python 函数
python函数可以返回多值
>>> def add_dif(x,y,):
sum=x+y
dif=x-y
return sum,dif
>>> a,b=add_dif(2,3)
>>> print a,b
5 -1
>>> r=add_dif(2,3)
>>> print r
(5, -1)
本质来说返回多值的函数其实返回一个元组tuple
递归函数用法
def f(n):
if n==1:
return 1
else:
return n * f(n - 1)
简单来说,递归的最终依赖于第一个基数,所以在递归函数里处理第一个集元素是非常必要的(个人理解)。
python中函数的默认参数
>>> def f(a,n=2):
print a**n
>>> f(2)
4
>>> f(2,4)
16
>>>
n是一个默认参数,如果船参数是没有传将默认为2,如果传入了n的值,传进去的值将覆盖默认参数。
默认参数要放到所有所有传参的后面。
python中可变参数
>>> def fadd(*args):
sum=0
if len(args)==0:
return sum
for x in args:
sum=sum+x
return sum
>>> s=fadd(1,2,3)
>>> print s
6
这里一个最大的秘诀是这个 ‘*’号,他代表传入的参数是不固定的。
其实相当于传入的是一个元组tuple。
高阶函数
基本概念:变量可以指向函数
>>> f=abs #f指向了abs函数
>>> f(-20)
20
>>>
高阶函数
>>> def add_abs(x, y, f):
return f(x)+f(y)
>>> add_abs(2,-3,abs)
5
>>>
将f参数指向了abs,即变量传参传的是一个函数
python 中一些内置的函数
map函数:
内置高阶函数,传递的 第一个参数是函数,第二个是列表,函数对列表中的每一个元素进行操作,返回新的列表
>>> map(abs,[1,-1,2,-2])
[1, 1, 2, 2]
sorted排序函数
>>> sorted([2,3,5,8,4,6,3])
[2, 3, 3, 4, 5, 6, 8]
这是一个简单的用法,他还可以自己写排序函数传入sorted实现自定义排序函数。