内置函数
max()函数:
salaries={
'egon':3000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':2000
}
res = max (salaries,key=lambda x :salaries[x])
print(res)
salaries_and_name = zip(salaries.values(),salaries.keys())#把数字放前边
print(max(salaries_and_name))
map 映射
:会将迭代对象的每一个值进行修改,然后映射一个map对象中,再转化成列表或元组,但是只能转化一次
函数内部也可以进行判断,但是映射返回值为None
l = ['a','b','c','d','e']
res = map(lambda x :x+'BB' ,l)
res2 = map(lambda x :x+'BB' if x=='b'else None,l)
print(list(res))
print(list(res2))
filter 过滤,
将函数中返回结果为Ture的参数值过滤出来,但是能对参数进行修改
l2 = [1,2,3,4,5,6,7,8]
res = filter(lambda x :x if x >4 else None, l2)
print(list(res))
l3 = ['tank','tian','xiong','shao']
res = filter(lambda x :x if x.endswith('n') else None, l3)
print(list(res))
reduce 合并,一行叠加
from functools import reduce
reduce(lambda x, y :x+y,range(1,101),0)
递归函数
重复(直接或间接)的调用本身,这是一种函数嵌套的表现形式。
调用分为直接调用和间接调用
python有递归调用深度
设置调用深度
import sys
print(sys.getrecursionlimit())
设置递归深度
sys.setrecursionlimit(2000)
print(sys.getrecursionlimit())
单纯的递归没有意义,想有意义的两个规则:回溯,递归
回溯:一层层递归调用下去,每一次重复问题的复杂度度都较上一层简单,回溯到最后必须有一个明确的结束条件
递推:往回一层层推算出结果
什么是模块?
一系列功能的结合体,本质上一个个py文件
可以更好的管理模块
导入方式:
import
from 包/模块 import 模块/函数
调用模块内函数名冲突,可以用AS起别名
来源:
1.python内置:import ,sys ,turtle , time , os
2.三方模块 :requests
3.自定义模块:
表现形式:
1使用python编写py文件
2.编译后共享库,DLL或C或C++库
3,包下面自带有__init__.py
4.python解释器下py文件
补:什么是包?
内补包含__init__.py的文件夹存放模块,更好的管理模块
循环导入问题解决:
1.需要查找的名字放在导入模块上方
2.将模块编程函数名称空间中的名字
软件开发目录规范:
注意:每次写项目要新建文件夹,新项目文件夹作为根目录
项目的文件夹:
conf——用于存放配置文件的文件夹,
core——核心业务代码
interface——接口
db——用于存放文件数据
lib——存放启动文件
log——用于存放日志文件
readme.txt——项目说明书,告诉使用者项目操作