python入门16 递归函数 高阶函数
递归函数:函数内部调用自身。(要注意跳出条件,否则会死循环)
高阶函数:函数的参数包含函数
递归函数
#coding:utf-8
#/usr/bin/python
"""
2018-11-17
dinghanhua
递归函数 高阶函数
""" '''递归函数,函数内部调用函数本身'''
'''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个序列。将函数作用于序列的每一项并返回list
map(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**2 print(add_square(1,2,square))
#用匿名函数
print(add_square(1,2,lambda x:x**2))
the end!
python入门16 递归函数 高阶函数的更多相关文章
- 【python】python函数式编程、高阶函数
1.map() : python内置的高阶函数,接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,得到一个新的list并 返回. def f(x): r ...
- python 函数式编程:高阶函数,map/reduce
python 函数式编程:高阶函数,map/reduce #函数式编程 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 #(一)高阶函数 f=abs f print ...
- python内置常用高阶函数(列出了5个常用的)
原文使用的是python2,现修改为python3,全部都实际输出过,可以运行. 引用自:http://www.cnblogs.com/duyaya/p/8562898.html https://bl ...
- Python之路-函数基础&局部变量与全局变量&匿名函数&递归函数&高阶函数
一.函数的定义与调用 函数:组织好的.可重复使用的.用户实现单一或者关联功能的代码段.函数能够提高应用的模块性和代码的重复利用率.Python提供了很多内置的函数,比如len等等,另外也可以根据自己的 ...
- Python 编程基础之高阶函数篇(一)
高阶函数:能接受函数作为参数的函数. 如: f=abs def add(x,y,f): return f(x)+f(y) 如果我们用:add(-5,9,f)来调用该高阶函数,则返回结果为:14 ...
- python函数式编程之高阶函数学习
基本概念 函数式编程,是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量.因此,任意一个函数,只要输入确定,输出就确定的这种函数我们称之为纯函数,我们称这种函数没有副作用.而允许使用 ...
- python 基础 4.2 高阶函数上
一.高阶函数 把函数当做参数传递的一种函数 1>map()函数 map函数是python内置的一个高阶函数,它接受一个函数f和一个list,并把list元素以此传递给函数f,然后返回一个函数 ...
- Python之路 day3 高阶函数
#!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa """ 变量可以指向函数,函数的参数能接收变量, 那么 ...
- python六十课——高阶函数之map
1.高阶函数: 特点:函数的形参位置必须接受一个函数对象 分类学习: 1).map(fn,lsd1,[lsd2...]): 参数一:fn --> 函数对象 参数二:lsd1 --> 序列对 ...
随机推荐
- 【Python】ACL限制结果检测
最近帮客户做ACL的限制检测,也就是客户对一些站点做了acl限制,只有省内或内网可以访问,然后让我 去验证acl做的是否正确,简单写了个粗略的脚本,分享下,不足之处日后改进(如多线程等),脚本如下: ...
- 集成 Jenkins 和 TestNG 实现自助式自动化测试平台
背景介绍 在软件业十分成熟的今天,敏捷(Agile)开发在业界日益流行,而面临的挑战也日益增多,不断变化的用户需求.缩短的开发周期.频繁的部署上线.复杂的产品架构和团队组织,如何继续保证软件的质量是一 ...
- MyBatis模糊查询相关
Mybatis模糊查询的实现不难,如下实例:在UserMapper.xml中根据用户名模糊查询用户: <!-- 模糊查询用户 --> <select id="findSom ...
- PIE SDK波段运算
1.算法功能简介 波段运算(Band Math)工具能够方便的执行图像中的各个波段的加减乘除.三角函数.指数.对数等数学函数计算,也可以使用IDL编写的函数. 由于每个用户都有独特的需求,利用此工具用 ...
- PIE SDK矢量数据项查看
1. 功能简介 矢量数据由大量要素信息构成,矢量数据项查看可以看到数据的属性表,下面就基于PIE SDK,介绍矢量数据项查看功能的实现. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 加载 ...
- @font-face引用指定字体库(一)
创建 文件夹 font 存放指定字体库 在css文件中使用字体库: html, body{ font-family: "Microsoft YaHei",Arial,Helveti ...
- unity的assetbundle的自动命名,以我的命名lua为例
static string testDir = "Assets/LuaScripts/"; [MenuItem("测试/lua命名")] public stat ...
- oracle dblink简介
database link概述 database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序.在任何分布式环境里,database都是 ...
- IE6,IE7,IE8 css bug搜集及浏览器兼容性问题解决方法汇总
断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1: ...
- 全局数据 GetGlobalDataSet
/// <summary> /// 获取全局数据 /// </summary> /// <returns></returns> public DataS ...