一. 递归
递归函数:
def a (): print ("from b") b()def b(): print("from a ") a()a()
递推和回溯
递归练习
二. 二分法
列表从小到大的数字列表,采用二分法。
三. 匿名函数
lambda n:n**2
自带return,适用于只有一行代码的函数体。
匿名函数调用:匿名函数就是个值。直接使用就行。不用为匿名函数绑定名称,匿名函数只能用一次,就会被回收。
匿名函数的应用场景:某个功能只用一次。
四. 内置函数
zip函数 拉链函数
字符串,列表,元组比较大,先比较索引0的值大小。
max函数
min函数
sorted函数
map函数
reduce函数
abs函数 求绝对值
all函数
any函数
bytes函数
callable函数
chr函数
ord函数
classmethod
staticmethod
complie函数
exec函数
五. 模块的使用
写一个py文件就是一个模块
常见的模块:文件,C和C++
导入一个模块,会有什么操作?
执行模块中的代码,并且只执行一次。
以源文件为准,产生一个名称空间。
以刚刚产生的名称空间为准,执行源文件的代码。
为模块起别名 使用as关键字
在一行导入多个模块,用逗号分隔开。
from ... import ...
from spam import * 导入模块中的所有名称
在模块中,添加__all__,只跟from spam import * 一起使用。导入的时候,先检查模块中有没有__all__,没有就导入所有,有只导入__all__中的变量名称。
__all__是一个列表,默认为空。
六. 模块的重载
python不支持重新加载
七. python文件的用途
当作脚本运行
当作模块被调用。
可以使用__name__查看,文件是被当作脚本,__name__='__main__'.
文件当作模块被导入时,__name__等于模块名。
通过__name__控制,文件被当作脚本,还是模块。
七. 模块的搜索路径
内存中已经加载的模块-->内置模块-->sys.path路径中包含的模块
八. 包
import 包名
python3会自动产生__init__.py的文件。python3中没有__init__.py,不会报错,但是python2中就会有报错。
.的左边必须是包,
九. 包的绝对路径和相对路径
十. 软件开发规范
bin 程序的执行文件
conf 配置文件
log 日志文件
lib 模块和包
data 数据文件
core 核心
import sys