博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python入门16 递归函数 高阶函数
阅读量:5253 次
发布时间:2019-06-14

本文共 1486 字,大约阅读时间需要 4 分钟。

递归函数:函数内部调用自身。(要注意跳出条件,否则会死循环)

高阶函数:函数的参数包含函数

 

递归函数

#coding:utf-8#/usr/bin/python"""2018-11-17dinghanhua递归函数 高阶函数"""'''递归函数,函数内部调用函数本身''''''n!'''def f_mul(n):    if type(n) != type(1) or n <= 0: #不是整数或小于0        raise Exception('参数必须是正整数')    elif n == 1:        return 1    else:        return n * f_mul(n-1) #调用自身print(f_mul(5))
''''回声函数'''def echo(voice):    if len(voice) <= 1:        print(voice)    else:        print(voice,end = '\t')        echo(voice[1:]) #调用自身echo('你妈妈叫你回家吃饭')

 

高阶函数

'''函数式编程:函数的参数是函数。高阶函数''''''map() 2个参数:1个函数,1个序列。将函数作用于序列的每一项并返回listmap(f,[l1,l2,l3]) = [f(l1),f(l2),f(l3)]'''
#列表每项首字母大写print(list(map(lambda x: x.capitalize(),['jmeter','python','selenium'])))#并行遍历,序列合并print(list(map(lambda x,y,z:(x,y,z),[1,2,3],['jmeter','python','selenium'],['api','dev','ui'])))#等价于print(list(zip([1,2,3],['jmeter','python','selenium'],['api','dev','ui'])))
#3个列表各项平方之和print(list((map(lambda x,y,z:x**2+y**2+z**2,[1,2,3],[4,5,6],[7,8,9]))))

 

'''filter() 用函数筛选,函数需返回bool值。true保留,false丢弃filter(f,[l1,l2,l3]) = [ if f(l1)==True: l1,...]'''#取出列表内的偶数li = [1,334,32,77,97,44,3,8,43]print(list(filter(lambda x:x%2==0,li)))#取出列表中去除两边空格后的有效数据 x and x.strip()li=[False,'','abc',None,[],{},set(),'  ','x',[1,2]]print(list(filter(lambda x: x and str(x).strip(),li)))

 

'''自定义高阶函数'''def add_square(x,y,f):    return f(x)+f(y)def square(x):    return x**2print(add_square(1,2,square))#用匿名函数print(add_square(1,2,lambda x:x**2))

 

the end!

转载于:https://www.cnblogs.com/dinghanhua/p/9975142.html

你可能感兴趣的文章
制作满天星空
查看>>
类和结构
查看>>
CSS3选择器(二)之属性选择器
查看>>
【前端统计图】echarts多条折线图和横柱状图实现
查看>>
thinkphp save()方法没有数据,保存失败解决办法
查看>>
★用辩证数学解答“缸中之脑”
查看>>
使用SSM架构的使用,打算使用json
查看>>
支付宝红包唤起 支付宝自动搜索
查看>>
花了一年时间开发出来的AutoCAD矢量字库编辑器
查看>>
win10的资源管理器,边框不见了
查看>>
cocos2dx加密解密资源
查看>>
近几天开发前端开发问题总结
查看>>
我的编码规范
查看>>
C#取得控制台应用程序的根目录方法
查看>>
Java成员变量与局部变量同名
查看>>
js判断输入是否为空,获得输入的类型
查看>>
选择排序
查看>>
一个长度为10的数组,将数组按照冒泡排序法,进行排序。
查看>>
HDU - 3949 线性基应用
查看>>
CodeChef - RIN 最小割应用 规划问题
查看>>