【23.函数-高阶函数】
变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称为高阶函数
如果一个函数可以接收另一个函数,这个函数就称为高阶函数

def func(x,y):return x+y
def calc(x):return x
f = calc(func)
print(f(5,9))

示例

输出结果

总结
1.接收一个或多个函数作为输入
2.return返回另外一个函数

【24.递归介绍】
什么是递归?
递归就是在函数的过程中调用自己

def recursion(n):recursion(n+1)print("这就是递归")
recursion(1)

示例

输出结果

python在调用的过程中超过了最大递归层的限制
print(sys.getrecursionlimit())
sys.getrecursionlimit(1500)#修改最大递归层数的限制

总结
递归调用就是不断的在函数自己里再执行,一直不结束,直到把内存撑爆了,所以需要有限制机制,于是python内部就加上了函数的限制

【25.函数-递归与栈的关系】
递归的本质,函数的调用时通过栈来执行的,栈就像是一个容器,内部是有数据大小限制的
每执行一次函数就会往栈里放内容,不断的放在栈里就容易溢出,只有函数结束以后,栈才会处理垃圾数据

【26.递归的作用】
可以用来解决复杂的数学问题,比如斐波那契数列等
使用递归的场景

def calc(n):v = int(n /2)print(v)if int(v) == 0:return 'Done'calc(v)
calc(10)

需求:使用10整除2,直到得到0为止

输出结果

【27.递归的特性总结】
递归是层级进入执行,函数执行完结束也是层级结束的

1.必须有一个明确的结束条件,要不就会变成死循环了,最终撑爆系统
2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少
3.递归执行效率不高,递归层次过多会导致栈溢出

【28.递归的作用】
递归的作用,斐波那契数列,汉诺塔,求阶乘等

def factoial(n):if n == 1:return 1return n * factoial(n-1)
print(factoial(4))

阶乘,每递归一次就要算一次阶乘

输出结果

【29.尾递归优化】
有没有优化的方式可以优化递归的效率?

def cal(n):print(n)return cal(n+1)
cal(1)

尾递归示例

尾递归就是在函数执行的时候直接用return调用,第一层调用第二层函数的时候,使用return直接结束第一层函数的执行,就是层层之间互相不再有对应的关系
也就是说当没有必要保留每一层的数据的时候,就可以直接用return调用下一层的函数,不再对栈有多余的占用

然而尾递归优化并不是所有的语言都是支持的,在C语言里是支持的,但是再python里是没有任何用的,python不会有尾递归优化的

【30.函数-内置方法1,2,3,4,5】
python里有几十种内置方法
abs()>>取绝对值 函数返回数字的绝对值
dict()>>把一个数据转换成字典
help()>>查看帮助
min()>>方法返回给定参数的最小值,参数可以为序列
max()>>方法返回给定参数的最大值,参数可以为序列
setattr()>>【面向对象详细讲】函数对应函数 getatt(),用于设置属性值,该属性必须存在
all()>>函数用于判断给定的可迭代参数(元祖或列表) iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。元素除了是 0、空、FALSE 外都算 TRUE

li = [1,2,3,4]
all(li)#这里会返回True
li.append(0)
all(li)#这里会返回False

示例

any()>>any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True
bool()>>判断输入的值是不是True
dir()>>打印当前文件存在的所有变量,包括你自定义的和python解释器自带的
hex()>>十六进制,将一个数字转换为十六进制的表达方式
next()
slice()>>切片
divmod()>>求整除和余数,先得到结果再返回余数
id()>>返回传入的内存地址
object()>>
sorted()>>排序,可以对字典的value排序,用在列表里的排序,sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作
ascii()>>返回一个可打印的对象字符串方式表示
enumerate() >>枚举法用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
input()>>用户交互输入
oct()>>将输入的数字转换为八进制
staticmethod()>>返回函数的静态方法【以后会讲】
bin()>>转换为二进制
eval() >>函数用来执行一个字符串表达式,并返回表达式的值,将字符串解析成代码(只能处理单行的代码)
exec()>>和eval功能相同,而且能执行多行代码,exec是没有返回值的
int()>>将数字转换为整数,不能转换的就报错
open()>>打开文件
str()>>将数字或字符转换为字符串形式
isintance()>>【面向对象】
ord()>>通过字符串返回在ascii表中的位置
chr()>>通过ascii表中的位置返回字符串对应值
sum()>>求和
bytearray()>>返回一个新字节数组,这个数组里的元素是可变的(原内存地址修改,不是重开辟内存空间)
map()>>根据提供的函数对指定序列做映射,可以用来求列表内的元素自乘(配合lambda函数)list(map(lambda x:x+3,[1,2,3,4,5]))
filter()>>过滤,找到符合条件的值--list(filter(lambda x:x>3,[1,2,3,4,5]))
pow()>>返回输入的数字的幂级数
super()>>【面向对象讲】
bytes()>>返回输入的二进制数
float()>>浮点数
iter()>>生成迭代器
print()>>print(*objects, sep=' ', end='\n', file=sys.stdout)

objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
sep -- 用来间隔多个对象,默认值是一个空格。
end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
file -- 要写入的文件对象
print可以直接把字符串打印到文件里
msg = '小邋遢'
f = open("ptint_to_file",'w')
print('真呀真邋遢',sep = '|',end = "")

print内部参数解读

tuple()>>转换为元祖
callable()>>判断一个东西是否可调用,可以判断变量是否是函数
len()>>判断字符串的长度
property()>>【面向对象】
type()>>判断参数的数据类型
frozenset()>>返回一个冻结的集合,冻结后集合不能再添加或删除任何元素
vars()>>打印当前所有的变量
locals()>>在函数的内部执行,打印当前函数的所有的局部变量
globals()>>无论在函数内部还是外部都打印全局的变量
zip()>>函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表,只能是一一对应的关系

l1 = [1,2,3,4]
l2 = ['a','b','c','d']
print(list(zip(l1,l2)))

示例:

转载于:https://www.cnblogs.com/pandaboy1123/p/9276237.html

路飞学城Python-Day9相关推荐

  1. 路飞学城—Python爬虫实战密训班 第三章

    路飞学城-Python爬虫实战密训班 第三章 一.scrapy-redis插件实现简单分布式爬虫 scrapy-redis插件用于将scrapy和redis结合实现简单分布式爬虫:- 定义调度器- 定 ...

  2. 路飞学城python全栈开发_[Python] 老男孩路飞学城Python全栈开发重点班 骑士计划最新100G...

    简介 老男孩&路飞学城Python全栈开发重点班课程,作为Python全栈教学系列的重头戏,投入了全新的课程研发和教学精力,也是Python骑士计划的核心教学,由ALEX老师开班镇守,一线技术 ...

  3. b站路飞学城python课梨视频项目代码

    @b站路飞学城python课梨视频项目代码 # -*- coding:utf-8 -*- import requests from lxml import etree import random im ...

  4. 路飞学城python开发入门学习

    零基础参加了路飞学城python七天入门集训,由于无相关基础知识,所以笔记简陋,大家将就着看看,欢迎批评指正. 1.第一个程序: print('Hello,World") 2. python ...

  5. 路飞学城python电子书_路飞学城-Python开发集训-第一章

    路飞学城-Python开发集训-第一章 1.本章学习心得.体会 我: 间接性勤奋. 我: 学习方法论:输入--输出---纠正 我: 对对对 走出舒适区, 换圈子, 转思路,投资自我加筹码. 我: 圈子 ...

  6. 路飞学城python全栈开发_python 全栈开发,Day98(路飞学城背景,django ContentType组件,表结构讲解)...

    昨日内容回顾 1. 为什么要做前后端分离?-前后端交给不同的人来编写,职责划分明确.-API (IOS,安卓,PC,微信小程序...)-vue.js等框架编写前端时,会比之前写jQuery更简单快捷. ...

  7. 路飞学城-python爬虫密训-第三章

    (一)学习心得 其实在没有正式学习python编程语言中,就知道模块是python最重要部分之一.虽然在前面HTTP协议跟IO多路复用都没有接触学的也是一知半解,scrapy模块比resquests模 ...

  8. 路飞学城-Python爬虫实战密训-第1章

    正式的开始学习爬虫知识,Python是一门接触就会爱上的语言.路飞的课真的很棒,课程讲解不是告诉你结论,而是在告诉你思考的方法和过程. 第一章,学习了如何爬取汽车之家以及抽屉登录并点赞. 1 impo ...

  9. 路飞学城-Python 爬虫实战密训-第 1 章

    本节学习体会: 鸡汤心得: 1.时代发展太快,要不断学习新东西,武装自己,才能跟得上时代的潮流,不然就是面临被pass的命运 2.要看清楚趋势,不要闭门造车 3.学习编程语言就跟学英语一样,方法很重要 ...

  10. 路飞学城-Python爬虫集训-第一章

    自学Python的时候看了不少老男孩的视频,一直欠老男孩一个会员,现在99元爬虫集训果断参与. 非常喜欢Alex和武Sir的课,技术能力超强,当然讲着讲着就开起车来也说明他俩开车的技术也超级强! 以上 ...

最新文章

  1. 基于经典的机器学习k-means聚类算法实现对三通道图片的压缩操作
  2. __CLASS__ get_class() get_called_class()区别
  3. 计算机公共基础知识实验报告,20140902413 李雪瑞 计算机工程系实验报告345.docx...
  4. docker搭建私有registry
  5. AI学习笔记(三)特征选择与提取、边缘提取
  6. 【转载】SQL Server 2008 中新建用户登录并指定该用户的数据库
  7. 如何实现不同vlan,不同网关的终端间的通信
  8. String的创建和常量池的关系,intern()相关问题
  9. 操作系统银行家算法(课程设计报告)JAVA实现
  10. ppc+安装编译mysql_redhat7ppc安装
  11. 中医经典《伤寒论》-原文
  12. Python实现猜拳游戏
  13. 外滩画报:揭秘全球电子垃圾坟墓
  14. CSS中的filter与backdrop-filter属性的异同点
  15. html 的ul是块矿元素吗,食品化学题库单选判断
  16. 【一起入门NLP】中科院自然语言处理作业四:RNN+Attention实现Seq2Seq中英文机器翻译(Pytorch)【代码+报告】
  17. FFT 快速傅里叶变换 初探
  18. R7 6800H 和 R5 6600H的差距大吗 哪个好
  19. 网络攻防原理及应用 知识梳理
  20. 深圳内推 | 遇见森林招聘角色动作生成/NLP算法工程师(全职/兼职/实习)

热门文章

  1. 在现有K8S集群上安装部署JenkinsX
  2. TCP协议的4次握手
  3. Jpa规范原始编程步骤
  4. fastDFS分布式文件系统--文件上传/下载/查询完整代码实现
  5. 配置spring整合jpa自动生成数据表
  6. 性能测试(04)-表达式和业务关联-JDBC关联
  7. Qt connect信号连接的几种写法
  8. 三维空间长度温度数量_塑料压力和温度对注塑件质量与尺寸的影响研究
  9. 汤普森算法_火箭队闹剧不断!自编算法向NBA申诉:这个公式要在NBA普及!
  10. Oracle 的原理: 索引