day16 函数递归 三元表达式 模块
Ⅰ 函数的递归调用
函数的递归调用其实就是一个循环的过程,就是在函数调用过程中直接或者间接的调用了函数自己;递归调用分为两个阶段:第一:回溯阶段,一层一层的递归调用下去;第二阶段:递推阶段:在满足某一个条件后结束回溯,然后开始一层一层的往上返回
死递归:函数没有结束条件,会无限制递归下去,再循环一千次后会出异常 间接调用自己,同理,无限循环,直到报错那么为什么会报错呢,因为无限的循环调用,上一个函数一直没有结束运行,内存无法释放,会越来越多,最后内存溢出,整个计算机都可能会瘫痪,所有python中设置了最大递归深度.
不推荐操作了解就好 循环定义条件:5比4大10,4比3大10,3比2大10,2比1大10,1等于 18,那么2就等于1的结果18加上10,3的结果等于2的结果28加上10,依次递推到7 案例 案例Ⅱ 三元表达式
三元表达式其实就是一个if判断的简易版
变量名 = 表达式1 if 条件 else 表达式2
三元表达式写法 正常if判断写法Ⅲ 匿名函数
匿名函数lambda:是指一类无需定义函数名的函数或者子程序.lambda函数可以接收任意多个参数并且返回单个表达式的值.lambad函数不能包含命令,包含的表达式不能超过一个.lambda匿名函数的格式:冒号前是参数,可以有多个,用逗号隔开,冒号右边的为表达式.
匿名函数的返回值是函数的内存地址 简单的匿名函数使用 对一个字典取最大值是,key 为max的内置方法,用于指定取最大值的方法Ⅳ 模块
模块就是一个集合体,不是用来直接运行,而是用来被导入使用的,模块分为三大来源:一:内置的模块;二:第三方模块,三:自定义模块.模块又分为四种类别:一:一个py文件就是一个模块;二:一个文件夹也是一个模块;三:已被编译为共享库或DLL的C或C++扩展;四:使用C编写并连接到python解释器的内置模块.那我们为什么要用模块呢:拿来主义,提升开发效率;解决代码冗余;当别人的功能不能够满足使用时需要自定义模块.import 模块名 首次导入模块会触发被导入的模块的运行,产生一个模块的名称空间,把模块中的名字都丢进去,第二会在当前执行文件中得到一个导入的模块名字,改名字是直向被导入模块的名称空间的,需要用到模块的功能时需要加上模块名为前缀,例:time.什么什么,time是python的内置模块.如果我们自定义的模块名过长的话可以自定义模块的名字:impo 模块名 as 短名 ;我么后续使用使用的时候直接使用短名来进行前缀就可以了;我们还可以单独导入模块的某些功能:from 模块名 import 模块内功能名,名,名 可导入多个功能,以逗号分开即可; 或者 from ? import * *功能可以将模块名内的全部功能都会导入到当前文件中, 这两个功能需要注意导入的功能名字有可能和当前文件内的冲突 ; __all__ = ['',''] 里面的功能可以阻止*号的全部导入.