列表生成式,生成器表达式,模块的使用

三元表达式
无论条件成立与否都要返回一个值,
用于简化仅有一个判断的函数(或代码块)
递归
递归有循环调用的次数限制,调用函数时,函数相关数据要入栈,而栈区是有限的
二分查找法
匿名函数
仅能在定义时使用一次,定义完了就没了
参数没有括号,不能有return,会自动把函数体的执行结果当做返回值
函数体只能有一个表达式 且不能换行
内置函数
max min sorted map filter reduce


1.列表生成式
2.生成器表达式
3.模块的使用*****
3.1 模块的分类
3.2 自定义模块
3.3 模块的两种方式
3.4 模块的搜索顺序

列表生成式
一个快速生产列表的表达式
语法[表达式 for in 遍历]
语法[表达式 for in 遍历 if 条件]
生成器表达式
生成数据的函数 函数体中yield关键字 yield 暂停函数的执行 还能返回一个值
可以使用一种快速创建生成器的表达式
语法(表达式 for in 循环 if 条件)
与列表生成式完全相同

目前使用函数来编写代码 虽然大幅度降低了代码冗余,并且组织结构清晰多了
但是随着项目功能的增加如果还将代码全放一个文件中,将会出现以下问题
1.维护性差
2.函数太多结构也不清晰,可读性差
3.对于相同功能的函数,如果在不同文件中都要使用,就只能复制粘贴 又出现了重复代码


1.如何拆分文件
2.拆开后如何再使用文件中的内容
上述问题的解决方案就是拆分模块

什么是模块
模块就是一堆功能的集合体,以py文件的形式存在
简单的就是具备一堆函数的py文件
模块的分类
1.自定义模块(重点学习),包含第三方模块(学习用法即可)
2.内置模块 例如time os(主要学怎么使用)
3.经过编译后的C或C++库,以DLL形式存在(忽略)
4.包(本质就是一个文件夹,其中包含了一堆模块)

import 用于导入一个模块
会立即执行模块中的代码
导入模块时发生了什么
1.创建了一个名称空间
2.执行模块中的代码,将内部名称与值的对应关系存储到名称空间中
3.在当前执行文件创建一个名字,该名字指向被导入模块的名称空间

注意:模块之间的名称空间是相互独立的
模块中的代码仅在第一次被导入时执行

pycharm会自动帮你检测 项目根目录下的模块
给以给你一些提示,但是对于不再根目录下的,他可能会报错
这是pycharm 的问题 不影响执行

给被导入的模块取别名
import xxx as xx
print()

from导入模块
使用from 导入时 会把import后的名字直接放入当前名称空间
使用时可以不写前缀
注意:可能会与当前名称空间中的名字冲突
如果真的冲突了 会就近查找 谁最后定义我就用谁

*通配符 会将模块中所有名字全部导入
极容易出现名称冲突,要慎用

该特殊变量 用于指定哪些名字可以被*导入
__all__ = ['func']

执行文件的两种方式:
__name__属性可以获取当前这个模块的名字
当这个文件作为执行文件被执行时,__name__的值时__main__
当这个文件被导入执行时,__name__的值时模块的名字


使用模块时必须先找到对应的模块文件,这就涉及到查找(搜索)路径
1.查找内存中已存在的
2.内置的
3.sys.path
sys.modules 可以看到内存中已经加载的模块
当你要使用的模块不在执行文件同一级下时,就找不到
pycharm会自动把项目根目录加入syspath
如果碰巧你要找的文件就在项目根目录下,就能找到
但是如果你换了一个运行环境不在pycharm,就有可能找不到
所以为了保证你的项目在哪都能运行,我们需要自己将要使用的文件路径添加到sys.path中
可以将sys.path理解为解释器的环境变量
如果你的执行文件在根目录下,就能够访问到当前项目中的所有文件,无须关心sys.path

内置函数
abs 绝对值
all 如果所有元素都为True 结果为True
any 任意一个元素为True 结果为True
ascii 将参数转为asc 如果asc不支持这个字符就转unicode
bin 转为二进制
oct 转为八进制
hex 转为十六进制
bytearray 字节数组
bytes 转为字节
callable 是否可调用
chr 数字转asc对应的字符
ord 按照asc字符转数字
compile 把对象转为指定的字节码
complex 转为复数形式
dir 查看该对象中所有可用的名字(函数和变量)
divmod 得到商和余数
enumerate 枚举 把一个值和数字对应
eval 可以帮你把一个字符串的内容转换成python数据类型 但是这并不是他的本职工作
frozenset 冻结一个集合
globals 查看全局名称空间中的所有名字
locals 查看局部名称空间中的所有迷你工资 在全局位置调该函数 看到也是全局
hash 可以校验一个数据是不是可变
可hash的都是不可变的 不可hash都是可变的

转载于:https://www.cnblogs.com/gengbinjia/p/10288522.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387561.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#怎么用代码模拟手机去访问手机网站抓取数据

WebClient client new WebClient ();client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");更改user-agent为手机浏览器的。模拟谷歌Android:user-agent"Mozilla/5.0 (Linux; …

angular6 iframe应用

问题一、 iframe如何自适应屏幕高度 解决思路&#xff1a;通过设置iframe外层父元素高度等于window高度&#xff0c;再相对于父元素定位iframe元素&#xff1b;案例如下&#xff1a; 第一步: 模板文件中使用iframe // demo.component.html <div style"position: relati…

jquery下载地址:https://code.jquery.com/jquery/ 影响范围: 版本低于1.7的jQuery过滤用户输入数据所使用的正则表达式存在缺陷,可能导致LOCA

jquery下载地址&#xff1a;https://code.jquery.com/jquery/ 影响范围&#xff1a; 版本低于1.7的jQuery过滤用户输入数据所使用的正则表达式存在缺陷&#xff0c;可能导致LOCATION.HASH跨站漏洞 已测试成功版本&#xff1a; jquery-1.6.min.js&#xff0c;jquery-1.6.1.min…

Myeclipse常用快捷键

2019独角兽企业重金招聘Python工程师标准>>> Ctrl1 快速修复 CtrlD: 删除当前行 CtrlQ 定位到最后编辑的地方 CtrlL 定位在某行 CtrlO 快速显示 OutLine CtrlT 快速显示当前类的继承结构 CtrlW 关闭当前Editer CtrlK 快速定位到下一个 CtrlE 快速显示当前Edi…

数字三角形

问题描述 &#xff08;图&#xff13;.&#xff11;&#xff0d;&#xff11;&#xff09;示出了一个数字三角形。 请编一个程序计算从顶至底的某处的一条路径&#xff0c;使该路径所经过的数字的总和最大。●每一步可沿左斜线向下或右斜线向下走&#xff1b;●1&#xff1c;三…

版本低于1.7的jQuery过滤用户输入数据所使用的正则表达式存在缺陷

jquery下载地址&#xff1a;https://code.jquery.com/jquery/ 影响范围&#xff1a; 版本低于1.7的jQuery过滤用户输入数据所使用的正则表达式存在缺陷&#xff0c;可能导致LOCATION.HASH跨站漏洞 已测试成功版本&#xff1a; jquery-1.6.min.js&#xff0c;jquery-1.6.1.min.…

RabbitMQ学习总结(6)——消息的路由分发机制详解

2019独角兽企业重金招聘Python工程师标准>>> 一、Routing(路由) (using the Java client)在前面的学习中&#xff0c;构建了一个简单的日志记录系统&#xff0c;能够广播所有的日志给多个接收者&#xff0c;在该部分学习中&#xff0c;将添加一个新的特点&#xff0…

Kaggle爆文:一个框架解决几乎所有机器学习问题

上周一个叫 Abhishek Thakur 的数据科学家&#xff0c;在他的 Linkedin 发表了一篇文章 Approaching (Almost) Any Machine Learning Problem&#xff0c;介绍他建立的一个自动的机器学习框架&#xff0c;几乎可以解决任何机器学习问题&#xff0c;项目很快也会发布出来。 这篇…

C# HttpWebRequest GET HTTP HTTPS 请求

这个需求来自于我最近练手的一个项目&#xff0c;在项目中我需要将一些自己发表的和收藏整理的网文集中到一个地方存放&#xff0c;如果全部采用手工操作工作量大而且繁琐&#xff0c;因此周公决定利用C#来实现。在很多地方都需要验证用户身份才可以进行下一步操作&#xff0c;…

HttpStatusCode

https://docs.microsoft.com/en-us/dotnet/api/system.net.httpstatuscode?viewnetframework-4.7.2 422 UnprocessableEntity What HTTP status response code should I use if the request is missing a required parameter? Status 422 seems most appropiate based on the…

numpy 和tensorflow 中的乘法

矩阵乘法&#xff1a;tf.matmul() np.dot() &#xff0c; 逐元素乘法&#xff1a;tf.multiply() np.multiply()转载于:https://www.cnblogs.com/lizhiqing/p/10307760.html

启用了不安全的HTTP方法

安全风险&#xff1a;可能会在Web 服务器上上载、修改或删除Web 页面、脚本和文件。可能原因&#xff1a;Web 服务器或应用程序服务器是以不安全的方式配置的。修订建议&#xff1a;如果服务器不需要支持WebDAV&#xff0c;请务必禁用它&#xff0c;或禁止不必要的HTTP 方法。方…

Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型

2019独角兽企业重金招聘Python工程师标准>>> 1、基础知识 1.1、数据库概述 简单地说&#xff1a;数据库&#xff08;Database或DB&#xff09;是存储、管理数据的容器&#xff1b;严格地说&#xff1a;数据库是“按照某种数据结构对数据进行组织、存储和管理的容器”…

django权限二(多级菜单的设计以及展示)

多级权限菜单设计级标题栏 我们现在只有数据展示,要进入其他url还需要手动的输入路径,非常的麻烦,所以我们要设计 一个导航栏以及侧边多级菜单栏,这个展示是通过stark组件的设计的增删改查页面,而 每一个 页面我们都需要有导航栏和侧边的权限菜单栏,所以把这个公共的部分提起到…

6.17 dokcer(一)Compose 简介

Compose 简介 Compose 项目是 Docker 官方的开源项目&#xff0c;负责实现对 Docker 容器集群的快速编排。从功能上看&#xff0c;跟 OpenStack 中的 Heat 十分类似。 其代码目前在 https://github.com/docker/compose 上开源。 Compose 定位是 「定义和运行多个 Docker 容器的…

【系统架构理论】一篇文章精通:Spring Cloud Netflix Eureka

是官方文档的总结 http://spring.io/projects/spring-cloud-netflix#overview 讲解基于2.0.2版本官方文档 https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.0.2.RELEASE/single/spring-cloud-netflix.html Netflix提供了以下功能&#xff1a; 服务发现&am…

Flink DataStream 编程入门

流处理是 Flink 的核心&#xff0c;流处理的数据集用 DataStream 表示。数据流从可以从各种各样的数据源中创建&#xff08;消息队列、Socket 和 文件等&#xff09;&#xff0c;经过 DataStream 的各种 transform 操作&#xff0c;最终输出文件或者标准输出。这个过程跟之前文…

腾讯手游如何提早揭露游戏外挂风险?

目前腾讯SR手游安全测试限期开放免费专家预约&#xff01;点击链接&#xff1a;手游安全测试立即预约&#xff01; 作者&#xff1a;sheldon&#xff0c;腾讯高级安全工程师 商业转载请联系腾讯WeTest获得授权&#xff0c;非商业转载请注明出处。 文中动图无法显示&#xff0c…

基于ARM Cortex-M0+ 的Bootloader 参考

源&#xff1a; 基于ARM Cortex-M0内核的bootloader程序升级原理及代码解析转载于:https://www.cnblogs.com/LittleTiger/p/10312784.html

小猿圈web前端之网站性能优化方案

现在前端不仅要能做出一个网站页面&#xff0c;还要把这个页面做的炫酷&#xff0c;那需要很大程度的优化&#xff0c;那么怎么优化才更好呢&#xff1f;小猿圈总结了一下自己优化的方案&#xff0c;感兴趣的朋友可以看一下。一般网站优化都是优化后台&#xff0c;如接口的响应…