内置函数,递归函数,模块与包,开发目录规范

内置函数

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——项目说明书,告诉使用者项目操作

posted @ 2019-11-15 19:40  D山仙  阅读(80)  评论(0编辑  收藏  举报