内置函数

map

map映射:语法结构(函数对象,可迭代对象)

依次从可迭代对象中取值,然后给函数做运算,再依次返回运算的结果.

ss = map(lambda x: x + x, [1, 2, 3])
print(ss)
try:
print(ss.__next__()) # 2
print(ss.__next__()) # 4
print(ss.__next__()) # 6
print(ss.__next__())
except StopIteration:
print('完成')
----------------------------------------------------------
ss = map(lambda x, y: x + y, [1, 2, 3], [4, 5, 6])
print(ss)
try:
print(ss.__next__()) # 5
print(ss.__next__()) # 7
print(ss.__next__()) # 9
print(ss.__next__())
except StopIteration:
print('完成')

reduce

reduce: 合并(函数对象,可迭代对象,初始值)

从可迭代对象中取出前两个值,传入函数进行运算,再与可迭代对象中的第三个值进行运算。

注意:上述操作均从初始值开始。

from functools import reduce

sum1 = reduce(lambda x, y: x + y, range(1, 101), 1000)
print(sum1) # 6050 multi = reduce(lambda x, y: x * y, range(1, 5))
print(multi) # 24 multi = reduce(lambda x, y: x * y, range(1, 5), 5)
print(multi) # 120

filter

filter:语法结构:filter(函数对象,可迭代对象)

从可迭代对象中取值,放到函数中进行判断,如果返回结果为true,取值加入到filter返回的对象中。

def func1(x):
if x > 'a':
return True
else:
return False ss = filter(func1, ['Bs', 'A', 'start', 'im', 'key'])
try:
print(ss.__next__())
print(ss.__next__())
print(ss.__next__())
print(ss.__next__())
except StopIteration:
print('完成')
ss = filter(lambda x: x.startswith('i'), ['Bs', 'A','start', 'im', 'key'])

递归

递归是函数直接或者间接调用自身,是一种函数嵌套的形式。

如果不给边界值,程序会无线循环,造成内存溢出。

python中递归深度默认设置为1000。

可以通过sys.getrecursionlimit( )查看,也可以通过sys.setrecursionlimit( ) 设定递归深度。

# _*_ coding: gbk _*_
# @Author: Wonder
import sys
print(sys.getrecursionlimit()) #1000次数
sys.setrecursionlimit(1000) # 设定最大递归次数1000,此处的值可以根据电脑修改

数学概念 已知f(0)=1, f(n) = f(n-1)+2 ,求f(5)的值,这是一则递归的表达式

用函数表达为

def f(n)
if n==0
return 1
return f(n-1)+2 f(5)

递归有两个过程,首先是由外到内层层找值(回溯),找到之后再由内到外层层返回(递推)。

模块

package

python中的包package,本质是一个有__ init__.py的文件夹。

package的作用:用于存放模块,可以更方便的管理模块。

模块

什么是模块

模块是一系列功能的结合体,本质上是一个.py文件。

模块的三种来源:

1、python内置的模块 2、第三方的模块 3、自己编写的模块

模块的四种表现形式:

1、使用python编写的.py文件。 2、编译后的共享DLL文件(库文件),c和c++的库。 3、包含__ init__.py的一组.py文件。 4、python解释器下的py文件。

如何创建编写并引用模块:

1、自己编写.py文件作为模块。 2、通过import关键字导入模块名,注意:在一个文件中多次import同一个模块不会有任何影响,一旦第一条import语句执行成功后,就会将模块加载到内存,后续的重名导入不会有任何作用。

模块的导入方式

import 模块名 as 模块别名

import time as t

也可以使用 from 包/模块名 import 模块/函数/变量/类

from functools import wraps

导入的过程中极有可能发生循环导入的情况,类似于递归没有终止值。

此时可以根据Python的执行特点,调整import语句的顺序,提供循环导入的终止值

还可将import语句写进函数,在用到该函数时执行导入,本质上还是提供了循环导入的终止值。

模块在导入的时候发生的事情:

先执行当前的执行文件,在内存中开辟执行文件的名称空间

当执行到import语句时,开辟模块的名称空间,并将模块名称空间加载到内存,

再将模块的名称空间加载到内存。

软件开发目录规范

在写新项目是,都要新建一个项目工程和文件夹,要将项目文件夹作为项目根目录

-conf 配置

-core核心业务代码

-interface/api 接口

-db 文件数据

-lib 公共功能文件

-log 日志

-bin 启动目录

-readme.txt

最新文章

  1. yii2 解决POST 400错误
  2. TP-LINK WR841N V8刷OpenWRT
  3. 获取URL参数
  4. Chapter 2. Overview gradle概览
  5. js之第三方工具解析JSON
  6. NLPIR中文分词器的使用
  7. 新人报道~cnblogs
  8. css优先级之特殊性
  9. java桥连接sql server之登录验证及对数据库增删改查
  10. PHPWord导出word文档
  11. Android Studio 3依赖配置
  12. js之搜索框
  13. Arch Linux 更新源(以清华 arch 源为例)
  14. mapgis IGServer账号
  15. 2018.11.01 NOIP训练 梭哈(模拟)
  16. Java程序流程控制:判断结构、选择结构、循环结构
  17. byte[]数组与十六进制字符串与字符串的互相转换 ——转载
  18. bootstrap左侧边栏
  19. cmmusic:小巧而实用的mplayer音乐播放前端
  20. qt4.8中多线程的几种方式

热门文章

  1. 【HDUOJ】1257 最少拦截系统
  2. docker容器和宿主机时间不一致的问题
  3. codeforces1175E Minimal Segment Cover 倍增
  4. ElementUI的Loading组件 —— 想实现在请求后台数据之前开启Loading组件,请求成功或失败之后,关闭Loading组件
  5. python_django_中间件
  6. 2 java程序入门
  7. 使用Fiddler抓取手机包
  8. [转]走进 LINQ 的世界
  9. 【硬盘】RAID卡
  10. bzoj 2751