day6学python 生成器迭代器+压缩文件
生成器迭代器+压缩文件
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 生成器迭代器+压缩文件的更多相关文章
- python批量处理压缩文件
python批量处理压缩文件 博客小序:在数据的处理中,下载的数据很有可能是许多个压缩文件,自己一个一个解压较为麻烦,最近几日自己在处理一次下载的数据时,遇到大量的压缩数据需要处理,于是利用pytho ...
- Python脚本破解压缩文件口令(zipfile)
环境:Windows python版本2.7.15 Python中操作zip压缩文件的模块是 zipfile . 相关文章:Python中zipfile压缩文件模块的使用 我们破解压缩文件的口令也是用 ...
- Python中zipfile压缩文件模块的使用
目录 zipfile 压缩一个文件 解压文件 高级应用 利用 zipfile 模块破解压缩文件口令:Python脚本破解压缩文件口令 zipfile Python 中 zipfile 模块提供了对 z ...
- python 生成器 迭代器
阅读目录 一 递归和迭代 二 什么是迭代器协议 三 python中强大的for循环机制 四 为何要有for循环 五 生成器初探 六 生成器函数 七 生成器表达式和列表解析 八 生成器总结 一 递归和迭 ...
- python实现批量压缩文件夹
前段时间碰到一个需要把目录下文件夹压缩的项目,但是度娘里没找到,只好自己写脚本了. #coding:utf-8 import os filePath = raw_input("请输入路径:& ...
- 【Python】zlib压缩文件
import zlib import os ss = 's' * 1024 * 1024 #写入原始文件 file = open("src.dat", "wb" ...
- Python 生成器, 迭代器, 可迭代对象的区别
1.可迭代对象 在python中, 一切皆对象, 但凡是可以用for循环进行遍历取值的对象都可以称之为可迭代对象, 可迭代对象在程序的一个执行周期中,可以无限轮次的进行循环遍历 2.迭代器 a.一个可 ...
- python 生成器 迭代器 yiled
文章来源:http://python.jobbole.com/81911/ https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449 ...
- 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 ...
随机推荐
- VS2017自定义代码片段, 实现快捷输入
点击VS2017的工具→代码片段管理器, 下图: 语言选择C#, 路径定位到 Visual C#, 然后复制这个路径在电脑中打开 这里以增加 crk 快捷方式输出 Console.ReadKey()来 ...
- s3c6410开发板LED驱动程序设计详细…
2 下面来看看tiny6410关于LED的原理图如图(1)所示: 图1 LED原理图 3 LED实例,代码如下所示:(代码摘自\光盘4\实验代码\3-3-1\src\main.c) main.c ...
- 幂等性的含义和 HTTP请求方法的幂等性
幂等性的含义和 HTTP请求方法的幂等性 1.什么是幂等性 =============== 幂等性,英文是idempotent,读作[aɪ'dɛmpətənt]. 它的含义如下: “Methods c ...
- EF中的批量操作
阅读目录 插入 更新 删除 在使用EF的过程中,我们经常会遇到需要批量操作数据的场景,批量操作有的时候不仅能提高性能,比如使用SqlBulkCopy进入批量插入的时候,而且比较方便操作,提高效率.那么 ...
- 中国大学MOOC 玩转AutoCAD 熟悉AutoCAD的工作空间
- 08-Location总结图解
URI解析 首先要判断有没有精准匹配,能不能精准匹配.计算机里面没有什么这种差不多这种东西.跟人聊天才说差不多,最近过得怎么样啊,还行吧,差不多吧,这个不多是多还是不多啊. 预定义库->Gen ...
- git获取网上的项目
这里是从coding.net上下载项目至本地phpstorm并配置好相关环境. 这里url地址正是项目路径.获取的地方是: 下面那个url直接复制粘贴. 自己选择一个目录,然后clone. 下面便是前 ...
- Mac下MongoDB enterprise版的安装
1. 访问mongodb下载中心,https://www.mongodb.com/download-center#enterprise,选择OS X x64系统,点击下载,可能会出一个页面让你填写联系 ...
- Luogu 3665 [USACO17OPEN]Switch Grass 切换牧草
BZOJ 4777 被权限了. 这道题的做法看上去不难,但是感觉自己yy不出来. 首先是两个结论: 1.答案一定是连接着两个异色点的一条边. 2.答案一定在最小生成树上. 感觉看到了之后都比较显然,自 ...
- 用JS实现点击TreeView根节点复选框全选
以下两种方法哪个不报错就用哪个.用法都是在TreeView标签中加入OnClick="",然后引入函数名即可 第一种方法:(摘自:http://www.cnblogs.com/fr ...