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

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

递归函数

#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 递归函数 高阶函数的更多相关文章

  1. 【python】python函数式编程、高阶函数

    1.map() : python内置的高阶函数,接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,得到一个新的list并            返回. def f(x): r ...

  2. python 函数式编程:高阶函数,map/reduce

    python 函数式编程:高阶函数,map/reduce #函数式编程 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 #(一)高阶函数 f=abs f print ...

  3. python内置常用高阶函数(列出了5个常用的)

    原文使用的是python2,现修改为python3,全部都实际输出过,可以运行. 引用自:http://www.cnblogs.com/duyaya/p/8562898.html https://bl ...

  4. Python之路-函数基础&局部变量与全局变量&匿名函数&递归函数&高阶函数

    一.函数的定义与调用 函数:组织好的.可重复使用的.用户实现单一或者关联功能的代码段.函数能够提高应用的模块性和代码的重复利用率.Python提供了很多内置的函数,比如len等等,另外也可以根据自己的 ...

  5. Python 编程基础之高阶函数篇(一)

      高阶函数:能接受函数作为参数的函数. 如: f=abs def   add(x,y,f): return f(x)+f(y) 如果我们用:add(-5,9,f)来调用该高阶函数,则返回结果为:14 ...

  6. python函数式编程之高阶函数学习

    基本概念 函数式编程,是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量.因此,任意一个函数,只要输入确定,输出就确定的这种函数我们称之为纯函数,我们称这种函数没有副作用.而允许使用 ...

  7. python 基础 4.2 高阶函数上

    一.高阶函数 把函数当做参数传递的一种函数   1>map()函数 map函数是python内置的一个高阶函数,它接受一个函数f和一个list,并把list元素以此传递给函数f,然后返回一个函数 ...

  8. Python之路 day3 高阶函数

    #!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa """ 变量可以指向函数,函数的参数能接收变量, 那么 ...

  9. python六十课——高阶函数之map

    1.高阶函数: 特点:函数的形参位置必须接受一个函数对象 分类学习: 1).map(fn,lsd1,[lsd2...]): 参数一:fn --> 函数对象 参数二:lsd1 --> 序列对 ...

随机推荐

  1. Python基础 (上)

    参考:菜鸟教程    Python用途 目录 一.数据类型 二.运算符 三.条件和循环控制语句 四.函数 五.模块 六.输入与输出 一.数据类型 string.list和tuple都属于sequenc ...

  2. oracle12C--DG 状态集

    一,物理备库 01,状态查询与状态详解 select switchover_status from v$database 02,状态转换到备用数据库 alter database commit to ...

  3. oracle 操作实例(一)----rman 全备恢复

    一,环境背景 拥有全备数据库 全备脚本: export TMP=/tmp export TMPDIR=$TMP export ORACLE_BASE=/u01 export ORACLE_SID=pr ...

  4. 记录树莓派静态IP修改

    1.操作:修改dhcpcd.conf文件 sudo nano /etc/dhcpcd.conf interface eth0 static ip_address=192.168.0.10/24 sta ...

  5. (转)linux命令详解之useradd命令使用方法

    linux命令详解之useradd命令使用方法 原文:http://blog.csdn.net/u011537073/article/details/51987121 Linux 系统是一个多用户多任 ...

  6. Java实现Ip代理池

    设置Ip代理很多时候都会有用到,尤其是在写爬虫相关项目的时候.虽然自己目前没有接触这种需求,但由于最近比较闲,就写着当作练习吧 爬取代理IP 爬取 关于爬取代理IP,国内首先想到的网站当然是 西刺代理 ...

  7. VS2008调试程序时出现"XXX mutex not created."

    1. 在 VS2008中调试一个程序,怎样都运行不起来(在IDE中无法运行) 出现恶心信息: 2. 但神奇的是,在工程目录下,直接双击exe文件 却可以启动起来,说明编译的文件没问题,有可能是IDE的 ...

  8. log4j 2整理

    # Log4j 2最佳实践 #Log4j的1.x版本已经被广泛使用于很多应用程序中.然而,它这些年的发展已经放缓.它变得越来越难以维护,因为它需要严格遵循很老的Java版本,并在2015年8月寿终正寝 ...

  9. python制作 whl 源文件,并制作本地pip源

    制作whl 1.创建用于存放wheel文件目录 mkdir wheels 2.安装wheel库 pip install  wheel 3.进入wheels目录 cd wheels 4.使用pip wh ...

  10. github不支持tlsv1.1后, 出现SSL connect error

    过完年回来, github不安分了, 发了博文说不支持TLSv1/TLSv1.1: Weak cryptographic standards removed, 没看到这篇博文之前, 还以为是代理问题, ...