1.特性:
---------1.1.可扩展性
---------1.2.减少代码重复
---------1.3.程序更容易维护
2.函数的参数与局部变量
---------2.1.函数里面的 *arges 元组形式存储,**kwarges 字典方式存储,可以写成其他,但是**必须写
---------2.2.函数里面入参可以是默认参数,固定参数,位置参数,关键字参数,非固定参数的
3.返回值
---------3.1.函数可以return任何值(任意数据类型),对于用户角度,函数可以返回任意数量的值,对于py来讲,函数只能返回一个值
---------3.2.return代表一个函数的结束
---------3.3.返回值的作用:一旦函数经过调用,并开始执行,那么函数外部的程序,就没有办法
控制函数的执行过程了,此时外部程序只能等待函数的执行结果(返回值)
,外部程序根据函数的执行结果来判断下一步如何走,,结果就是以
return的形式返回给外部程序。
一.函数二分查找(递归的作用)
dataset = range(0,1000) def digui(date,find_name): if len(dataset)>0: midd_num = int(len(date)/2) if date[midd_num] == find_name: print(‘找到 :‘,date[midd_num]) elif date[midd_num] > find_name: print(‘继续查找1:‘,date[0:midd_num],find_name) digui(date[0:midd_num],find_name) else: print(‘继续查找2:‘, date[midd_num:],find_name) digui(date[midd_num:], find_name) else: print(‘未找到:‘,find_name) digui(dataset,34)
二.匿名函数
1.分号前面的代表形参,如果是两个参数 则 X,Y
2.不能跟指定值
cacl = lambda x:x*x
#上面匿名函数调用
print(cacl(2))
3.匿名函数的作用
3.1.搭配一些其他方法使用,例如
def cc(x):
return x*x
#map的作用 把后面列表的值取出来 ,交给前面的函数取运算 data = map(cc,range(10)) for i in data: print(i) #lambda 的使用方法,一般来说 是 跟map一起使用 data2 = map(lambda n:n*2,range(10)) for i in data2: print(i)
#三元运算
a =4
b =5
c = a if a>10 else b
#lambada 可以接三元运算符
data = map(lambda n: n*2 if n>5 else n,range(10)) #如果 n>5那么就*2,否则就n
#可以接函数
data = map(lambda n: n*2 if n>5 else test(n),range(10)) #test(n) 调用上面的一个函数
三.高阶函数
一个函数作为另一个函数的入参,这个函数就称为高阶函数
abs(),把负值转换为正值
四。函数式编程
编程范式
1.面向过程
2.面向对象(重点)
3.函数式编程
原文:https://www.cnblogs.com/cdm023/p/11965705.html