1. 推导表达式
  2. yield用法
  3. 模块的概念和导入方法
  4. 包和包管理

推导表达式(利用for,一个一个地放入数据)

列表推导

集合推导

字典推导

迭代器

迭代

for 迭代变量 in 可迭代对象

每一次循环都会自动让 “迭代变量” 指向 “下一个元素”

生成迭代器的方法

iter()             __iter__()

取值

next(iterator)      iterator.__next__()

注意:如果迭代器值取完之后,会返回 StopIteration 错误

迭代器对象本身需要支持以下两种方法,它们一起构成迭代器协议

iterator.__iter__()    iterator.__next__()

从可迭代对象生成一个迭代器

迭代器=iter(可迭代对象)

下个值=next(迭代器)

for实现原理

自定义迭代器

区分:可迭代对象 与 迭代器

可迭代对象没有 next 方法

迭代对象有 next方法

生成器

生成器不会一下子把所以内容生成出来,在需要用的时候用next()去生成

方法 一:列表推导式的 [ ] 改成  ( )

方法 二:在函数里面加上yield

yield运行规则

yiled 一个对象  1、返回这个对象  2、暂停这个函数  3、等待下次next重新激活

注意

yield 表达式只能在函数中使用

yield 表达式可以使函数成为一个生成器

yield 可以返回表达式结果,并且暂定函数执行,直到next激活下一个yield

简单点理解生成器就是一个迭代器

Python使用生成器对延迟操作提供了支持
所谓延迟操作,是指在需要的时候才产生结果,而不是立即产生结果,从而节省大量的空间,这也是生成器的主要好处

模块和包

可以使用三种方法导入

import 包名

from 包名 import 模块名1,模块名2,...

在同一目录下,可直接使用上面两种方法去导入

在不同目录下,需要使用  sys.path.append('path')  添加路径,把路径添加到 sys.path 中

模块

在python中,模块就是一个py文件

包和包管理

包概念:把很多模块放到一个文件夹里面,就可以形成一个包

包管理:当把很多模块放在文件中时,为了方便引用包中的模块,引入了包管理

__init__.py

在包管理中,加入此模块,则包名可以直接通过属性访问的方式,访问此模块内的对象

python2中必须加,pyhton3中不加也能使用

规范是要加上,文件内容可以为空

相对路径导入

在包管理中,可分别来导入同层和上一层的模块以通过 . (一个点) 和 .. (两个点)

使用方法:from  .module(..module)  import obj

引入作用:在包中,如果包中模块要导入同一包中的其他模块,就必须使用此方法导入

引入之后的影响:当一个模块中出现此导入方式,则该模块不能被直接运行,只能被导入

Python推导表达式、迭代器、生成器、模块和包的更多相关文章

  1. Python迭代器生成器,模块和包

      1.迭代器和生成器 2.模块和包 1.迭代器 迭代器对象要求支持迭代器协议的对象,在Python中,支持迭代器协议就是实现对象的__iter__()和__next__()方法.    其中__it ...

  2. python基础教程总结9——模块,包,标准库

    1. 模块 在python中一个文件可以被看成一个独立模块,而包对应着文件夹,模块把python代码分成一些有组织的代码段,通过导入的方式实现代码重用. 1.1 模块搜索路径 导入模块时,是按照sys ...

  3. python杂记-4(迭代器&生成器)

    #!/usr/bin/env python# -*- coding: utf-8 -*-#1.迭代器&生成器#生成器#正确的方法是使用for循环,因为generator也是可迭代对象:g = ...

  4. python学习笔记13(模块、包)

    在Python中有一个概念叫做模块(module),比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块. 模块文件以.py后缀结 ...

  5. python学习第十三天 -模块和包

    模块和包 大家都知道,在计算机程序开发的过程中,随着程序代码越写越多,这样代码就会越不容易维护. 有时候为了好维护代码,把不同功能的函数放到不同的xx.py文件中. 在python中,一个.py文件就 ...

  6. Python 2.7 学习笔记 模块和包

    我们来考虑下如下几种场景: 1.编写一个python程序,如果程序比较简单,则可以把代码放到一个python文件中.但如果程序功能比较多,可能需要多个python文件来组织源代码.而这些文件之间的代码 ...

  7. Python学习(十一) —— 模块和包

    一.模块 一个模块就是一个包含了python定义和声名的文件,文件名就是模块名加上.py后缀. import加载的模块分为四个通用类别: 1.使用python编写的代码(.py文件) 2.已被编译为共 ...

  8. python 列表表达式、生成器表达式和协程函数

    列表表达式.生成器表达式和协程函数 一.列表表达式: 常规方式示例: egg_list=[] for i in range(100): egg_list.append("egg%s" ...

  9. Python学习之路12☞模块与包

    一 模块 1.1 什么是模块? 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 1.2 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前 ...

随机推荐

  1. JS基础语法---作用域

    作用域:使用范围 全局变量: 声明的变量是使用var声明的, 那么这个变量就是全局变量 全局变量可以在页面的任何位置使用 除了函数以外, 其他的任何位置定义的变量都是全局变量 局部变量:在函数内部定义 ...

  2. HTML中特殊符号编码对照表,html特殊符号编码都有哪些?

    HTML中一些无法打出来的符号可以用相应的代码进行代替显示,本文提供了一些HTML特殊符号相应的代码供开发者参考. 特殊符号 命名实体 十进制编码 特殊符号 命名实体 十进制编码 特殊符号 命名实体 ...

  3. swift字符串截取实例

    截取字符串 let deviceStr = deviceInfoLabel.attributedText?.string var device  = "" if let len : ...

  4. angularjs 实现猜数字大小的功能

    <body ng-app="myapp" ng-controller="myCtrl"> <h2>猜一猜,多大值?(1-1000)< ...

  5. Nginx一般配置

    文件为 nginx.conf ,一般配置内容如下: user root;worker_processes auto;#pid /var/run/nginx.pid;#error_log /dev/st ...

  6. Linux—软连接与硬连接

    软链接的创建,删除,修改 创建软链接:ln -s[目标文件或目录][软链接地址] 解释:软链接地址相当于快捷方式,目标文件或目录才是真正的内容.[软链接地址]指“快捷键”文件名称,该文件是被指令创建的 ...

  7. misc-4-1

    记录一题盲水印的misc,缅怀昨天高校运维挑战赛的twocats翻车车 下载下来binwalk一下 然后在里面发现了压缩包,并找到两长一模一样的图片,还要tip.txt Although two da ...

  8. 小程序-小菊花loading

    界面----交互 wx.showLoading() 显示loading提示框.需主动调用wx.hideLoading()才能关闭提示框 参数: 属性 类型 默认值 必填 说明 title string ...

  9. Spring中注解方式实现IOC和AOP

    1.IOC注解 1.1 IOC和DI的注解  IOC: @Component:实现Bean组件的定义 @Repository:用于标注DAO类,功能与@Component作用相当 @Service:用 ...

  10. python的__future__模块

    一.概述 Python的每个新版本都会增加一些新的功能,或者对原来的功能作一些改动.有些改动是不兼容旧版本的,也就是在当前版本运行正常的代码,到下一个版本运行就可能不正常了.从Python 2.7到P ...