编程理论:
面向过程
面向对象
函数式编程
函数是编程:
高阶函数:
1、函数接受的参数是一个函数名
2、返回值中包含函数
map 函数处理序列的每个元素,得到的结果是一个“列表”,该列表的元素及位置与原一样
filter 遍历序列中的每个元素,判断每个元素得到一个布尔值,如果是True就留下来
reduce 处理一个序列,把序列进行合并操作
函数的尾递归调用优化
在函数的最后一步进入递归
lambda
map函数举例
filter函数举例
reduce函数举例
内置函数:
abs()取绝对值
all()测试所有元素是否都为True,否则False
all("0")测试结果为True
any()测试所有元素是否有一个是True,否则False
ascii
bin
bool()布尔运算
bytes
chr()
ord()十进制转换成8进制
dict()创建字典
dir
divmod()分页计算
enumerate
eval 1、提取字符串中的数据结构 2、执行字符串中的运算
a="{"cc":12}" d = eval(a) 把字符串中的字典提取出来
float
frozenset
hash 1、不凡反推hash值 2、hash值固定长度
hex十进制转十六进制
oct十进制转八进制
id查看内存地址
isinstance判断数据类型是不是谁的对象
locals打印局部变量
globals打印全局变量
zip(("a","b","c")(1,2,3))拉链,传入的值是可迭代对象
max()结合zip使用可以 判断字典中的数值的大小
1、max函数处理的可迭代对象,相当于一个for循环,循环取出每个元素进行比较。不同类型不能比较
2、每个元素之间比较,是从每个元素的第一个位置依次比较,如果第一个位置分出大小。后面的都不需要比较了,直接得出两个元素的大小
people=[
{'name':'alex','age':1000},
{'name':'wupei','age':10000},
{'name':'yuanhao','age':9000},
{'name':'linhaifeng','age':18},
]
print(max(people,key=lambda dic:dic['age'] ))
执行结果:{'name': 'wupei', 'age': 10000}
min()同上
oct()十进制转八进制
pow() pring(pow(3,3,2)) 3**3 %2
reversed()反转列表的顺序 ,区别与方法reverse,注意
re = [1,2,3,4]
print(list(reversed(re)))
round()四舍五入
slice() s1 = slice(3,5)切片
sorted()临时排序,用法类似max()
c=_import_(test)导入模块,用在模块名是字符串类型的时候