内置函数

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

CSIC_716_20191115【内置函数、递归、模块、软件开发规范】的更多相关文章

  1. python基础语法10 函数递归,模块,软件开发目录规范

    函数递归: 函数递归指的是重复 “直接调用或间接调用” 函数本身, 这是一种函数嵌套调用的表现形式. 直接调用: 指的是在函数内置,直接调用函数本身. 间接调用: 两个函数之间相互调用间接造成递归. ...

  2. day15 内置函数和模块

    day15 内置函数和模块 1.三元表达式 代码如下: x = 1 y = 2 res = 'ok' if x > y else 'no' print(res) 输出结果:no 2.内置函数:重 ...

  3. Python基础-内置函数、模块、函数、json

    内置函数 1.id()返回对象的内存地址: 2. type() 返回对象类型:   3.print()打印输出: 4. input()接受一个标准输入数据,返回为string类型: 5. list() ...

  4. python内置函数 和模块函数总结

    1.内置函数(无需导入)long() 函数将数字或字符串转换为一个长整型.len() 统计元素个数print() 打印,输出input() 输入,或阻塞程序运行type 获取类型range 产生连续的 ...

  5. python中的内置函数,递归,递归文件显示(二),二分法

    1.部分内置函数 repr()显示出字符串的官方表示形式,返回一个对象的string形式 # repr 就是原封不动的输出, 引号和转义字符都不起作用 print(repr('大家好,\n \t我叫周 ...

  6. python之迭代器 生成器 枚举 常用内置函数 递归

    迭代器 迭代器对象:有__next__()方法的对象是迭代器对象,迭代器对象依赖__next__()方法进行依次取值 with open('text.txt','rb',) as f: res = f ...

  7. lamba匿名函数与内置函数/递归

    max 循环出的参数给func,func的返回值给key,然后比较那个返回值max(salary,key=func) 匿名函数:max(salary,key=lamba x:salaries[x]) ...

  8. Python中生成器,迭代器,以及一些常用的内置函数.

    知识点总结 生成器 生成器的本质就是迭代器. 迭代器:Python中提供的已经写好的工具或者通过数据转化得来的. 生成器:需要我们自己用Python代码构建的 创建生成器的三种方法: 通过生成器函数 ...

  9. 记录我的 python 学习历程-Day12 生成器/推导式/内置函数Ⅰ

    一.生成器 初识生成器 生成器的本质就是迭代器,在python社区中,大多数时候都把迭代器和生成器是做同一个概念. 唯一的不同就是: 迭代器都是Python给你提供的已经写好的工具或者通过数据转化得来 ...

随机推荐

  1. iptables简介及常用命令

    相关文件 iptables服务配置文件 -rw-------. 1 root root 2374 9月 4 2017 /etc/sysconfig/iptables-config iptables规则 ...

  2. Maven Optional & Exclusions使用区别

    Optional和Exclusions都是用来排除jar包依赖使用的,两者在使用上却是相反. Optional定义后,该依赖只能在本项目中传递,不会传递到引用该项目的父项目中,父项目需要主动引用该依赖 ...

  3. 计算机基础、python历史,环境,分类,安装

    一.计算机基础 CPU:大脑,处理数据,计算 内存:临时储存数据,运行速度快,成本高,断电数据会消失:4G,8G,16G,32G 硬盘:1T,固态硬盘,机械硬盘:储存数据,文件,能长久保存 操作系统: ...

  4. Pandaria(Kruskal重构树+线段树合并)

    题意 是 有n个花园 一个花园内所有的花的颜色都是一样的 有很多种不同的颜色  花园到花园之间有路,走不同的路有不同的代价   如果选一个点作为起点 只走小于等于w的路  可以经过的这些花园里  那种 ...

  5. 【转】elasticsearch中字段类型默认显示{ "foo": { "type": "text", "fields": { "keyword": {"type": "keyword", "ignore_above": 256} }

    官方原文链接:https://www.elastic.co/cn/blog/strings-are-dead-long-live-strings 转载原文连接:https://segmentfault ...

  6. Java支持的数据类型有哪些?什么是拆装箱?

    Java中有八种基本数据类型以及引用类型 基本数据类型: byte(1字节),short(2字节),int(4字节),long(8字节),char(2字节),boolean(不确定,取值是true/f ...

  7. Django 框架之前

    返回主目录:Django框架 内容目录: 一.Django框架之前的内容 1.1 web应用程序的架构 1.2 HTTP协议 1.3 纯手写简单web框架 一.Django框架之前d的内容 1.1 w ...

  8. mybatis自动生成代码工具(逆向工程)

    MyBatis自动生成实体类(逆向工程) MyBatis属于一种半自动的ORM框架,它需要我们自己编写sql语句和映射文件,但是编写映射文件和sql语句很容易出错,所以mybatis官方提供了Gene ...

  9. easyui 弹出框调用外部js函数 提示“Microsoft JScript 运行时错误: 缺少对象”

    昨天遇见一个很诡异的问题 我用easyui做了一个网站,其中有一个a页面和一个b页面,我通过easyui的window功能,在a页面中弹出了一个b页面,在b页面中,我用到了一个外部js的函数c,我在b ...

  10. mysql组合查询

    使用UNION 多数SQL查询都只包含一个或多个表中返回数据的单条SELECT语句.MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回.这些组合查询通常称为并(uni ...