生成器迭代器+压缩文件

readme的规范

1软件定位,软件的基本功能
2运行代码的方法:安装环境,启动命令
3简要的使用说明
4代码目录结构说明,更详细点可以说明软件的基本原理
5常见问题说明

========================================================

  列表生成器

[i*2 for i in range(10)]    #开头的可为函数也可为方程

已经在内存中生成 存在并可调用

==========================================================

   生成器:generator(有yield关键词存在 就是生成器)

1.一边循环一边计算的机制

2.循环到时才能使用

3.只记录当前位置

a=(i*2 for i in range(10))

特点 :

1.在调用时只能用__next__()方法 一次次调用(用来唤醒yield)

2.不可像调用列表一样调用生成器

作用:

1.在运行循环时可进出自由 增加语句

##生成器并行##

import time
def maker(name):
c1=eater("a")
c2=eater("b")
c1.__next__()
c2.__next__()
print(name,"doing")
for i in range (10):
time.sleep(1)
print("第{}个".format(i+1))
c1.send(i)
c2.send(i)
def eater(name):
print(name,"eating=====")
while True:
baozi = yield
print("包子{}号来了,给{}吃了".format(baozi+1,name))
maker("cc")

===================================================================

  可迭代对象和迭代器

1.可迭代对象:Iterable 可循环的对象(例:list,tuple,dict,set,str,生成器)

2.迭代器:Iterator可以被next()函数调用 不断返回下一个值的对象

3.生成器都是迭代器

4.列表字典字符串不是迭代器! 但可用iter(列表/字典/字符串)获得迭代器对象


==================================================================

  内置方法(节选)

exec()执行字符串

a="print(\"hello\")"
exec(a)

eval(str)将字符串去掉“”(”蜕皮“)

eval("2+1")

结果:3

lambda作为匿名函数关键词

filter()从一组数据中过滤想要的

res1=filter(lambda n:n>5,range(10))

结果:6,7,8,9

map()对传入的数值进行处理后返回

res2=map(lambda n:2*n,range(10))

结果:0,2,4,6,8,10,12,14,16,18

zip() 将两个数组对应成元组 按少的来

a=[1,2,3,4,5]
b=["a","b","c"]
for i in zip(a,b):
print(i)

结果:(1, 'a') (2,'b') (3,'c')

返回当前目录的相对路径

print(__file__)

os.path.abspath(文件)#返回当前目录的绝对路径

import os
print(os.path.abspath(__file__))

os.path.dirname(“路径”)返回去文件名的绝对路径(返回当前文件上级)

a=os.path.dirname(os.path.abspath(__file__))
import sys
print(sys.path)

---恢复内容结束---

  readme的规范

1软件定位,软件的基本功能
2运行代码的方法:安装环境,启动命令
3简要的使用说明
4代码目录结构说明,更详细点可以说明软件的基本原理
5常见问题说明

========================================================

  列表生成器

[i*2 for i in range(10)]    #开头的可为函数也可为方程

已经在内存中生成 存在并可调用

==========================================================

   生成器:generator(有yield关键词存在 就是生成器)

1.一边循环一边计算的机制

2.循环到时才能使用

3.只记录当前位置

a=(i*2 for i in range(10))

特点 :

1.在调用时只能用__next__()方法 一次次调用(用来唤醒yield)

2.不可像调用列表一样调用生成器

作用:

1.在运行循环时可进出自由 增加语句

##生成器并行##

import time
def maker(name):
c1=eater("a")
c2=eater("b")
c1.__next__()
c2.__next__()
print(name,"doing")
for i in range (10):
time.sleep(1)
print("第{}个".format(i+1))
c1.send(i)
c2.send(i)
def eater(name):
print(name,"eating=====")
while True:
baozi = yield
print("包子{}号来了,给{}吃了".format(baozi+1,name))
maker("cc")

===================================================================

  可迭代对象和迭代器

1.可迭代对象:Iterable 可循环的对象(例:list,tuple,dict,set,str,生成器)

2.迭代器:Iterator可以被next()函数调用 不断返回下一个值的对象

3.生成器都是迭代器

4.列表字典字符串不是迭代器! 但可用iter(列表/字典/字符串)获得迭代器对象


==================================================================

  内置方法(节选)

exec()执行字符串

a="print(\"hello\")"
exec(a)

eval(str)将字符串去掉“”(”蜕皮“)

eval("2+1")

结果:3

lambda作为匿名函数关键词

filter()从一组数据中过滤想要的

res1=filter(lambda n:n>5,range(10))

结果:6,7,8,9

map()对传入的数值进行处理后返回

res2=map(lambda n:2*n,range(10))

结果:0,2,4,6,8,10,12,14,16,18

zip() 将两个数组对应成元组 按少的来

a=[1,2,3,4,5]
b=["a","b","c"]
for i in zip(a,b):
print(i)

结果:(1, 'a') (2,'b') (3,'c')

返回当前目录的相对路径

print(__file__)

os.path.abspath(文件)#返回当前目录的绝对路径

import os
print(os.path.abspath(__file__))

os.path.dirname(“路径”)返回去文件名的绝对路径(返回当前文件上级)

a=os.path.dirname(os.path.abspath(__file__))
import sys
print(sys.path)

---恢复内容结束---

  readme的规范

1软件定位,软件的基本功能
2运行代码的方法:安装环境,启动命令
3简要的使用说明
4代码目录结构说明,更详细点可以说明软件的基本原理
5常见问题说明

========================================================

  列表生成器

[i*2 for i in range(10)]    #开头的可为函数也可为方程

已经在内存中生成 存在并可调用

==========================================================

   生成器:generator(有yield关键词存在 就是生成器)

1.一边循环一边计算的机制

2.循环到时才能使用

3.只记录当前位置

a=(i*2 for i in range(10))

特点 :

1.在调用时只能用__next__()方法 一次次调用(用来唤醒yield)

2.不可像调用列表一样调用生成器

作用:

1.在运行循环时可进出自由 增加语句

##生成器并行##

import time
def maker(name):
c1=eater("a")
c2=eater("b")
c1.__next__()
c2.__next__()
print(name,"doing")
for i in range (10):
time.sleep(1)
print("第{}个".format(i+1))
c1.send(i)
c2.send(i)
def eater(name):
print(name,"eating=====")
while True:
baozi = yield
print("包子{}号来了,给{}吃了".format(baozi+1,name))
maker("cc")

===================================================================

  可迭代对象和迭代器

1.可迭代对象:Iterable 可循环的对象(例:list,tuple,dict,set,str,生成器)

2.迭代器:Iterator可以被next()函数调用 不断返回下一个值的对象

3.生成器都是迭代器

4.列表字典字符串不是迭代器! 但可用iter(列表/字典/字符串)获得迭代器对象


==================================================================

  内置方法(节选)

exec()执行字符串

a="print(\"hello\")"
exec(a)

eval(str)将字符串去掉“”(”蜕皮“)

eval("2+1")

结果:3

lambda作为匿名函数关键词

filter()从一组数据中过滤想要的

res1=filter(lambda n:n>5,range(10))

结果:6,7,8,9

map()对传入的数值进行处理后返回

res2=map(lambda n:2*n,range(10))

结果:0,2,4,6,8,10,12,14,16,18

zip() 将两个数组对应成元组 按少的来

a=[1,2,3,4,5]
b=["a","b","c"]
for i in zip(a,b):
print(i)

结果:(1, 'a') (2,'b') (3,'c')

返回当前目录的相对路径

print(__file__)

os.path.abspath(文件)#返回当前目录的绝对路径

import os
print(os.path.abspath(__file__))

os.path.dirname(“路径”)返回去文件名的绝对路径(返回当前文件上级)

a=os.path.dirname(os.path.abspath(__file__))
import sys
print(sys.path)

day6学python 生成器迭代器+压缩文件的更多相关文章

  1. python批量处理压缩文件

    python批量处理压缩文件 博客小序:在数据的处理中,下载的数据很有可能是许多个压缩文件,自己一个一个解压较为麻烦,最近几日自己在处理一次下载的数据时,遇到大量的压缩数据需要处理,于是利用pytho ...

  2. Python脚本破解压缩文件口令(zipfile)

    环境:Windows python版本2.7.15 Python中操作zip压缩文件的模块是 zipfile . 相关文章:Python中zipfile压缩文件模块的使用 我们破解压缩文件的口令也是用 ...

  3. Python中zipfile压缩文件模块的使用

    目录 zipfile 压缩一个文件 解压文件 高级应用 利用 zipfile 模块破解压缩文件口令:Python脚本破解压缩文件口令 zipfile Python 中 zipfile 模块提供了对 z ...

  4. python 生成器 迭代器

    阅读目录 一 递归和迭代 二 什么是迭代器协议 三 python中强大的for循环机制 四 为何要有for循环 五 生成器初探 六 生成器函数 七 生成器表达式和列表解析 八 生成器总结 一 递归和迭 ...

  5. python实现批量压缩文件夹

    前段时间碰到一个需要把目录下文件夹压缩的项目,但是度娘里没找到,只好自己写脚本了. #coding:utf-8 import os filePath = raw_input("请输入路径:& ...

  6. 【Python】zlib压缩文件

    import zlib import os ss = 's' * 1024 * 1024 #写入原始文件 file = open("src.dat", "wb" ...

  7. Python 生成器, 迭代器, 可迭代对象的区别

    1.可迭代对象 在python中, 一切皆对象, 但凡是可以用for循环进行遍历取值的对象都可以称之为可迭代对象, 可迭代对象在程序的一个执行周期中,可以无限轮次的进行循环遍历 2.迭代器 a.一个可 ...

  8. python 生成器 迭代器 yiled

    文章来源:http://python.jobbole.com/81911/ https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449 ...

  9. python生成器&迭代器

    列表生成式 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 里每个值都加一 普通做法 a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]for index,i in e ...

随机推荐

  1. nios 使用count binary 例程 只是led不闪

    系统id有问题的总结: 1, 复位是否正确.(特别使用拨码开关的) 2, 硬件连接是否有问题.(SDRAM的时序约束可以有,也可以没有) 3, 引脚分配是否正确.(SDRAM的dqm就错过一次) 4, ...

  2. VMWARE三种网络配置

    由于linux目前很热门,越来越多的人在学习linux,但是买一台服务放家里来学习,实在是很浪费.那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有vmware workstations ...

  3. CImage得到位图的大小

    CImage image; image.Load(_T("1.jpg")); //HBITMAP hBitmap=image.Detach(); HGLOBAL m_hMem = ...

  4. Hadoop Serialization(third edition)hadoop序列化详解(最新版) (1)

    初学java的人肯定对java序列化记忆犹新.最开始很多人并不会一下子理解序列化的意义所在.这样子是因为很多人还是对java最底层的特性不是特别理解,当你经验丰富,对java理解更加深刻之后,你就会发 ...

  5. 解决Maximum execution time of 120 seconds exceeded

    在循环开始前加入代码: //设置超时时间 ini_set("max_execution_time",18000); set_time_limit(0); set_time_limi ...

  6. 带你剖析WebGis的世界奥秘----点和线的世界(转)

    带你剖析WebGis的世界奥秘----点和线的世界 转:https://zxhtom.oschina.io/zxh/20160813.html  编程  java  2016/08/13 0留言, 0 ...

  7. vector的简单用法

    vector是C++中容器的一种,与普通的数组相比,它可以动态的增长,而且还有封装了用于顺序表的操作的方法. 使用vector定义了容器之后,如果定义了容器的大小,则可以在大小范围之内直接使用数组的方 ...

  8. Inception安装

    前言: MySQL语句需要审核,这一点每个DBA及开发人员都懂,但介于语句及环境的复杂性,大部分人都是望而却步,对其都是采取妥协的态度,从而每个公司都有自己的方法. 大多数公司基本都是半自动化(脚本+ ...

  9. Luogu 4721 【模板】分治 FFT

    还不会这题的多项式求逆的算法. 发现每一项都是一个卷积的形式,那么我们可以使用$NTT$来加速,直接做是$O(n^2logn)$的,我们考虑如何加速转移. 可以采用$cdq$分治的思想,对于区间$[l ...

  10. Part8-不用内存怎么行_2440内存初始化lesson2

    1.2440地址空间 先去找PCB原理图,看CPU引出的内存地址线和数据线的宽度. 说明内存的其实地址是0x30000000为起始地址. 初始化内存其实是去初始化存储器控制器,只有初始化好这个存储器控 ...