内置函数+递归+模块使用

内置函数

map

映射:(函数地址,可迭代对象)—>map对象

map对象会将可迭代对象中的每一个值进行修改,然后映射到一个map对象中,可以再将map对象转换成列表/元组.

演示
name_list = ['egon','sean','tank']
map_obj = map(lambda name:name + 'dsb' if name == 'tank' else name + 'xsb',name_list)
print(list(map_obj))
print(tuple(map_obj))
不能同时打印两个,因为map对象只能被引用一次

reduce

合并:

(函数地址,可迭代对象,初始值(默认为0))

reduce(lambda x,y:x+y,range(1,101),0)

每次从可迭代对象中获取两个值进行合并

初始值:执行reduce函数时,都是从初始值开始合并

from functools import reduce
num = reduce(lambda x,y:x+y,range(1,101),0)
print(num)

filter

过滤: (函数地址,可迭代对象)–>filter对象

name_list = ['sean_dsb','nick_dsb','wm_dsb','lipeng']

filter_obj = filter(lambda name:name.endswith('_dsb'),name_list)
print(list(filter_obj))
print(tuple(filter_obj))

函数递归

定理

直接上代码(在python解释器里被限制了递归次数为1000,但在现实生活中,这是永无止尽的,你懂的)

def gilr():
    print('girl:我想要')
    boy()
def boy():
    print('boy:我给你')
    gilr()
gilr()

正经理论

​ 函数递归指的是重复’直接或间接调用’函数本身,这是一种嵌套调用的表现形式

直接调用:指的是在函数内置,直接调用函数本身(自交行为)

间接调用:两个函数之间相互调用间接造成递归(69式行为)

获取它的(递归)深度:‘sys.getrexursionlimit()’

设置递归深度:‘sys.setrecursionlimit(深度值)’

ps:单纯的递归没有任何意义

有意义的递归

递推:一层一层的递归调用下去,进入下一层递归的问题规模都将减小.

回溯:回溯需要一个明确的结束条件,在满足该条件开始一层一层的回溯.

模块

包指的是内部包含有–init–.py文件的文件夹

包的作用:存放模块,包能更好的管理模块;

模块

模块是一系列功能的结合体,里面包着一堆函数和代码.

模块本身是一个.py文件

模块来源

内置模块:sys,os,time,datetime,loging,json等都是内置模块

第三方模块:requestes

自定义模块:自定义一个py文件存放功能,通过import导入使用.

优点

将一个个功能分别管理,存放在不同的py文件中,比如函数;为了更方便的管理功能代码

使用

在导入时,需要注意谁是执行文件,谁是被导入文件

模块在导入时就已经固定好了,当前文件查找的顺序是先从内存中查找

导入:

from 包/模块 import 模块/(函数名、变量名、类名)

在执行文件中直接import导入

模块导入发生的三件事:

  1. 会先执行当前执行文件,并产生执行文件中的名称空间
  2. 当执行到被导入模块的代码时,被导入的模块会产生一个模块的名称空间
  3. 会将被导入模块的名称空间加载到内存中

给模块取别名:

import 模块名 as 模块别名

循环导入

model1.py
	from model2 import name
    name = 'json'
model2.py
	from model1 import name
    name = 'tank'

解决循环导入问题:

  1. 需要查找的名字放在导入模块上方
  2. 在函数内部导入,将模块变成函数名称空间中的名字

补充

软件开发目录规范

注意:每次写项目时,都要新建一个文件夹与项目工程,必须让文件夹作为项目的根目录.

conf:用于存放配置文件

core:核心业务代码

interface:接口,接口内写获取数据前的逻辑代码,通过后才能获取数据

db:用于存放文件数据

lib:存放公共文件

log:用于存放日志文件,日志用于记录用户的操作

bin:里面存放启动文件

readme.txt:项目说明书,用户告诉使用者项目的操作

posted @ 2019-11-15 18:29  Mr-Allen  阅读(135)  评论(0编辑  收藏  举报