老男孩Python全栈开发(92天全)视频教程 自学笔记15
day15课程内容:
高阶函数
1、函数名可以进行赋值
2、函数名可以作为参数,也可以作为函数的返回值
def f():
print("高阶函数")
def bar(a,b,c):
c()
print("高阶函数%s%s"%(a,b))
bar(1,1,f)
# 高阶函数
# 高阶函数11
###############
def f1(n):
print("高阶函数调用%s"%n)
return n*n
def bar1(a,b,c):
d=c(a)+c(b)
print(d)
bar1(1,3,f1)
# 高阶函数调用1
# 高阶函数调用3
# 10
############
def f3():
print("高阶函数返回函数名的那个函数")
def bar2():
print('这函数能返回函数名')
return f3
bar2()()
# 这函数能返回函数名
# 高阶函数返回函数名的那个函数
递归函数
def f(n): # 循环函数 计算n的阶乘
sum=1
for i in range(1,n+1):
sum*=i
return sum
print(f(7))
##########
def f1(n): #递归函数 计算n的阶乘
if n==1:
return 1
return n*f1(n-1)
print(f1(7))
# 递归函数的特性:
# 1、调用自身函数
# 2、有一个结束条件
# 但凡递归可以解决的 循环函数都可以解决
#递归的效率在很多情况下效率非常低 不建议使用 #菲波那切数列 0 1 1 2 3 5 8 13 21
def f2(n): #循环函数求菲波那切数列
if n==1:
return 0
before=0
after=1
ret=before+after
before=after
after=ret
return ret
print(f2(1)) #0
#########
def f3(n): #用递归函数写菲波那切数列
if n==1:
return 0
if n==2:
return 1
return f3(n-2)+f3(n-1)
print(f3(9)) #21
几个内置的高阶函数
#筛选器########
str='abcd' #被筛选的序列
def f1(s): #筛选条件,返回经过筛选的元素
if s!='a':
return s ret1=filter(f1,str) #过滤器 类型是迭代器
print(list(ret1)) #将迭代器类型,转化为列表形式输出 #map迭代器########
str1='hello world!' #待处理的序列
def f2(s): #处理函数
return s+'-map!'
ret2=map(f2,str1) # 将str1序列中的每一个元素,进行fun2处理,返回一个迭代器
print(list(ret2)) #将迭代器转化为列表输出 #reduce 数列好用的迭代器
from functools import reduce
def f3(a,b):
return a+b
ret3=reduce(f3,range(1,101)) #返回一个值。将序列的前两个元素传入f3,然后再将返回值 和第三个元素传入f3
print(ret3) #函数式编程 匿名函数 lambda
ret4=lambda a,b:a*b,[2,5] #lambda 形参:函数体,实参
老男孩Python全栈开发(92天全)视频教程 自学笔记15的更多相关文章
- 老男孩Python全栈开发(92天全)视频教程 自学笔记02
day2课程目录: 操作系统的历史 二进制运算 字符编码与计算机容量 编程语言介绍 开发语言分类 演讲能力锻炼 day2课程内容梳理: 操作系统发展史: Unix系统 极其稳定 现在很多银行还在用 L ...
- 老男孩Python全栈开发(92天全)视频教程 自学笔记03
day3课程目录: pyhton的历史 32bit和64bit系统的区别 Python版本的选择 第一个pyhton程序 文件后缀名及系统环境变量的介绍 pyhton程序的执行和其他编程语言的简单对比 ...
- 老男孩Python全栈开发(92天全)视频教程 自学笔记01
day1课程目录: 开课介绍(1) 开课介绍(2) 开课介绍(3) 电脑简史(1) 电脑简史(2) 计算机结构 day1课程内容梳理: 导师介绍: Alex Li(金角大王):买了一辆特斯拉,喜欢姑娘 ...
- 老男孩Python全栈开发(92天全)视频教程 自学笔记09
day9课程内容: 乌班图(ubuntu)64位系统 和 VMware 虚拟机安装(官网收费又麻烦,在网上找资源 安装vmware: vm运行(秘钥找度娘)--文件--新建虚拟机--自定义 下一步-- ...
- 老男孩Python全栈开发(92天全)视频教程 自学笔记20
day20课程内容: 模块: #模块一共三种:1.Python标准库 2.第三方模块 3.应用程序自定义的模块#import sysimport jisuanapp#print(jisuanapp.a ...
- 老男孩Python全栈开发(92天全)视频教程 自学笔记07
day7课程内容: Python的编码解码 二进制 --->ASCII:只能存英文和拉丁字符,一个字符占一个字节,8位 ------->gb2312:只能6700多个中文,1980年 -- ...
- 老男孩Python全栈开发(92天全)视频教程 自学笔记06
day6课程内容: tuple(元祖) 创建元祖: tup0=() #没有元素的一个元祖 tup1=(20,)#只有一个元素的元祖 元祖可读,不可修改 Dictionary(字典)#Python里唯一 ...
- 老男孩Python全栈开发(92天全)视频教程 自学笔记05
day5课程内容: 集成开发环境(IDE) VIM #经典的Linux下的文本编辑器 Eclipse #Java IDE Visual Studio #微软开发的IDE notepad++ subli ...
- 老男孩Python全栈开发(92天全)视频教程 自学笔记04
day4课程目录: 逻辑运算符 while循环 day4课程内容梳理: 逻辑运算符 算数运算符:+,-,*,/,%,** 比较运算符:< ,>, ==,<=,>=,!=, 逻辑 ...
- 老男孩Python全栈开发(92天全)视频教程 自学笔记21
day21课程内容: json: #序列化 把对象(变量)从内存中 编程可存储和可传输的过程 称为序列化import jsondic={'name':'abc','age':18}with open ...
随机推荐
- Linux指令--chgrp
在lunix系统里,文件或目录的权限的掌控以拥有者及所诉群组来管理.可以使用chgrp指令取变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以.Chgrp命令就是change group的 ...
- linkin大话设计模式--门面模式
linkin大话设计模式--门面模式 随着系统的不断改进和开发,他们会变得越来越复杂,系统会生成大量的类,这使得程序的流程更加难以理解.门面模式可以为这些类提供一个简易的接口,从而简化访问这些类的复杂 ...
- php中urldecode()和urlencode()起什么作用
urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%.urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其原 ...
- jQuery的标签选择器$('p')、类选择器$('.myClass')、id选择器$('#myId')
$()可以是$(expresion),即css选择器 $("a")构造的这个对象,是用CSS选择器构建了一个jQuery对象——它选择了所有的<a/>这个标签 $(&q ...
- 我的运维之旅-查找文本的linux命令
小伙伴们肯定都遇到这么尴尬场景,线上服务出问题了,老大一直在问什么问题导致的,而你由于对查找文本的命令不太熟,鼓捣了半天才找到那条 异常日志,而这时可能半个小时都已经过去了.老大可能对你失望透顶了.讲 ...
- __call PHP伪重载方法
为了避免当调用的方法不存在时产生错误,可以使用 __call() 方法来避免.该方法在调用的方法不存在时会自动调用,程序仍会继续执行下去 该方法有两个参数,第一个参数 $function_name 会 ...
- 关于主机用户名显示为"-bash-4.1$"
牢记 <1> .(小数点)==> 代表一个任意字符 <2> *(星)====> 重复前面一个字符0到无穷次 1.出现这中情况是因为:用户环境变量的文件没了,通 ...
- spring之AspectJ基于xml AOP编程
一.引言: AspectJ框架不仅实现了面向切面编程,而且还支持注解,spring将它引入自己的规范之中. 二.需要了解: AspectJ是基于java语言的AOP框架 spring2.0之后支持As ...
- 14_Python字符串操作方法总结
字符串方法总结 #s = '**i love you\n\t' 测试s.strip()使用的字符串 s = 'i love you' #1.首字符大写,其余字符小写 print(s.capitaliz ...
- 01_Linux安装
一.VMware创建一个虚拟机 下一步 .下一步 .下一步 ..前方高能 二.安装CentOS 6.7 next -> 选择 中文简体 -> 美式键盘,直接下一步 ,一直下一 ...