可迭代的对象 如果对象实现了能返回迭代器的 __iter__ 方法,那么对象就是可迭代的. 序列都可以迭代:实现了 __getitem__ 方法,而且其参数是从零开始的索引,这种对象也可以迭代. >>> s = 'ABC' >>> it = iter(s) # ➊ >>> while True: ... try: ... print(next(it)) # ➋ ... except StopIteration: # ➌ ... del it # ➍ .…
在python中,所有集合都可以迭代,在python语言内部,迭代器用于支持 for循环 构建和扩展集合类型 逐行遍历文本文件 列表推导,字典推导和集合推导 元组拆包 调用函数时,使用*拆包实参 本章涵盖的话题 语言内部使用 iter(...) 内置函数处理可迭代对象的方式如何使用 Python 实现经典的迭代器模式详细说明生成器函数的工作原理如何使用生成器函数或生成器表达式代替经典的迭代器如何使用标准库中通用的生成器函数如何使用 yield from 语句合并生成器案例分析:在一个数据库转换工…
可迭代的对象.迭代器和生成器 迭代是数据处理的基石.扫描内存中放不下的数据集时,我们要找到一种惰性获取数据项的方式,即按需一次获取一个数据项.这就是迭代器模式(Iterator pattern). 迭代器用于从集合中取出元素:而生成器用于“凭空”生成元素.通过斐波纳契数列能很好地说明二者之间的区别:斐波纳契数列中的数有无穷个,在一个集合里放不下.不过要知道,在 Python社区中,大多数时候都把迭代器和生成器视作同一概念. Sentence类 单词序列 import re import repr…
[笔记]Python(四)基础篇之「文件对象&错误处理」 2016-12-08 ZOE    编程之魅  Python Notes: ★ 如果你是第一次阅读,推荐先浏览:[重要公告]文章更新.阅读规则.导图下载. ★ 目前文章更新主平台已迁移至公众号「数林觅风」,ID:zoemindmap,博客只在每月末集中更新一次.所有「PDF&高清原图」只需在公众号后台回复关键词或者直接从菜单栏进入即可下载. 本文是我的「Python学习笔记」第四篇.主要涉及了python编程中的「文件对象」&…
1.编码转换介绍        unicode是最底层.最纯的,会根据终端的编码进行转化展示 一般硬盘存储或传输为utf-8(因为省空间.省带宽),读入内存中为unicode,二者如何转换 a = '你好'              '\xe4\xbd\xa0\xe5\xa5\xbd'     <type 'str'> b = u'你好'             u'\u4f60\u597d'                <type 'unicode'> a.decode('ut…
迭代是数据处理的基石.扫描内存中放不下的数据集时,我们要找到一种惰性获取数据项的方式,即按需一次获取一个数据项.这就是迭代器模式(Iterator pattern). p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 25.0px Helvetica } Sentence类第1版:单词序列 我们要实现一个 Sentence 类,以此打开探索可迭代对象的旅程.我们向这个类的构造方法传入包含一些文本的字符串,然后可以逐个单词迭代.第 1 版要实现序列协议,这…
Python_day_02 金角大王:http://www.cnblogs.com/alex3714/articles/5717620.html ------Python是一个优雅的大姐姐 学习方式:通过老师的视频以及博客上面文档,以完成作业和知识点归纳的方式编写自己博客. 本节内容 1. 列表.元组操作 2. 字符串操作 3. 字典操作 4. 集合操作 5. 文件操作 6. 字符编码与转码 一.列表操作 归纳: 查 索引(下标) ,都是从0开始 切片 .count 查某个元素的出现次数 .in…
掌握了python的数据类型,语句和函数,基本上就可以编出很多有用的程序了. 但是在python中,并不是代码越多越好,代码不是越复杂越好,而是越简单越好. 基于这个思想,就引申出python的一些高级特性. 切片 在python中,取list或者是tuple的部分元素是非常常见的操作. L = ["gege","gege","egye"]; [L[0],L[1],L[2]] 上面这个是一个笨办法,因为扩展一下,取前面n个元素就没办法了. r =…
注释 单行:# 多行:上下各用3个连续单引号或双引号 3个引号除了多行注释,还可以打印多行 举例: msg = ''' name = "Alex Li" name2 = name print ("My name is",name,name2) ''' # print(msg) 运行结果第二个print就是打印3行字符串. 如果单行,用引号即可:msg = "Alex Li" python中,单引号和双引号相同,除了单套双或双套单. 例: msg…
1.初始化实例属性 #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'ziv·chan' #定义Person类的__init__方法,除了接受 name.gender 和 birth 外,还可接受任意关键字参数, #并把他们都作为属性赋值给实例. class Person(object): def __init__(self,name,gender,age,**kw): self.name = name self.gender…
目录 1.什么是编程 2.操作系统有什么用? 3.计算机由哪三大部分组成? 4.简述操作系统和应用程序的启动流程? 5.编程语言的分类有哪些?并评估各个分类的优缺点. 1).机器语言 2).汇编语言 3).高级语言 1.什么是编程 答:编程就是用编程语言编写一堆文件 2.操作系统有什么用? 答:提供操作硬件的接口给应用程序调用 3.计算机由哪三大部分组成? 答:由应用程序.操作系统.计算机硬件组成 4.简述操作系统和应用程序的启动流程? 答:操作系统:操作系统代码由硬盘读入内存(BIOS).CP…
生成器函数的工作原理只要 Python 函数的定义体中有 yield 关键字, 该函数就是生成器函数. 调用生成器函数时, 会返回一个生成器对象. 也就是说, 生成器函数是生成器工厂. 调用生成器函数返回生成器: 生成器产出或生成值. 构建可迭代的对象和迭代器时经常会出现错误, 原因是混淆了二者. 要知道,可迭代的对象必须能从同一个可迭代的实例中获取多个独立的迭代器, 而且各个迭代器要能维护自身的内部状态,可迭代的对象有个 __iter__ 方法, 每次都实例化一个新的迭代器,而迭代器要实现 _…
可迭代对象 什么是可迭代对象?顾名思义就是可以迭代的一个对象,再通俗点就是可以被for循环遍历的对象,如常用的list.str等数据类型.我们可以使用isinstance来判断这个数据是否是可迭代对象,在此要先从Iterable包中导入模块collections. from collections import Iterable a = 1 #int b= [1,2,3] #list c= "abc" #str d = {1,2,3} #set e = (1,2,3) #tuple f…
一.迭代器概念:# 器:包含了多个值的容器# 迭代:循环反馈(一次从容器中取出一个值)# 迭代器:从装有多个值的容器中一次取出一个值给外界# ls = 'abcdef'ls = [1, 2, 3, 4, 5]# 遍历:被遍历的对象必须是有序容器i = 0while i < len(ls): print(ls[i]) i += 1 st = {1, 2, 3, 4, 5}dic = {'a': 1, 'b': 2, 'c': 3} 二.可迭代对象:# 对象:python中的一个对象(装有地址的变量…
一.函数的定义与调用 函数:组织好的.可重复使用的.用户实现单一或者关联功能的代码段.函数能够提高应用的模块性和代码的重复利用率.Python提供了很多内置的函数,比如len等等,另外也可以根据自己的业务需求进行用户自定义函数的创建. 函数的定义规则 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间. 函数的第一行语句可以选择性地使用文档字符串---用于存放函数说明. 函数内容以冒号起始,并且缩进. 定义一个函数 def 函数名([参数列…
第四章 基础知识进阶第十七节 迭代.可迭代对象.迭代器 一.    引言 本来计划讲完元组和字典后就讲列表解析和字典解析,但要理解列表解析和字典解析,就需要掌握Python的高级的类型迭代器,因此本节将迭代器的概念先进行介绍. 二.    概念 1.    迭代:是通过重复执行的代码处理相似的数据集的过程,并且本次迭代的处理数据要依赖上一次的结果继续往下做,上一次产生的结果为下一次产生结果的初始状态,如果中途有任何停顿,都不能算是迭代.例如: 1)    非迭代例子 loop = 0 while…
  一.什么是迭代? 迭代通俗的讲就是一个遍历重复的过程. 维基百科中 迭代(Iteration) 的一个通用概念是:重复某个过程的行为,这个过程中的每次重复称为一次迭代.具体对应到Python编程中就是,对于一个可迭代对象,比如Python中的list.tuple.string.dictionary,set等,使用某种循环结构来遍历其中的元素,这种遍历就是迭代. 1 #对列表进行遍历! 2 3 l=['a','b','c','d','e'] 4 5 #while循环的方式 6 i=0 7 wh…
可迭代对象和迭代器对象:前者生成后者 比喻:10个硬币都可以一一数(迭代),放入到存钱罐(可以取钱的那种),那这个存钱罐就是一个迭代器对象 需求:从网络抓取各个城市气温信息,并依次显示若依次抓取较多的城市,有较高的访问延迟,并且浪费存储空间,希望以 “用时访问”策略 将所有的城市气温封装在一个对象,可 用for语句迭代,如何解决? 方法:一:实现一个迭代器对象,next()方法返回每一个城市气温二:实现一个可迭代对象,__iter__方法返回一个迭代器对象 import requests #pr…
本节内容 语法糖的概念 列表生成式 生成器(Generator) 可迭代对象(Iterable) 迭代器(Iterator) Iterable.Iterator与Generator之间的关系 一.语法糖的概念 "语法糖",从字面上看应该是一种语法."糖",可以理解为简单.简洁.其实我们也已经意识到,没有这些被称为"语法糖"的语法,我们也能实现相应的功能,而 "语法糖"使我们可以更加简洁.快速的实现这些功能. 只是Python解…
[转]Python之列表生成式.生成器.可迭代对象与迭代器 本节内容 语法糖的概念 列表生成式 生成器(Generator) 可迭代对象(Iterable) 迭代器(Iterator) Iterable.Iterator与Generator之间的关系 一.语法糖的概念 “语法糖”,从字面上看应该是一种语法.“糖”,可以理解为简单.简洁.其实我们也已经意识到,没有这些被称为“语法糖”的语法,我们也能实现相应的功能,而 “语法糖”使我们可以更加简洁.快速的实现这些功能. 只是Python解释器会把这…
 content: 1.什么是迭代协议 2. 什么是迭代器(Iterator)和可迭代对象(Iterable) 3. 使用迭代器和可迭代对象 4. 创建迭代器和可迭代对象 5. 迭代器设计模式   一. 什么是迭代协议 之前我们就提到,python中的魔法函数,相当于其对应的协议,如果实现了某种魔法函数,我们可以认为这个类遵循了某种协议,有了某种特定的特质. 在python中遵循了迭代协议的有两个概念,一个是Iterable(可迭代类型),一个是iterator(迭代器). 看Iterable和…
一.函数名的应用 # 1,函数名就是函数的内存地址,而函数名()则是运行这个函数. def func(): return print(func) # 返回一个地址 # 2,函数名可以作为变量. def func1(): print(666) f1 = func1 f2 = f1 f2() # 就等于func1() 此时执行函数 # 3,函数名可以作为函数的参数. def func1(): print(666) def func2(x): x() func2(func1) # 输出666 func…
一.切片(Slice) 在很多编程语言中,针对字符串提供了很多截取函数(i.e.  substring),目的就是对字符串切片.python中没有针对字符串的截取函数,需要通过“切片”来完成. 取一个list或tuple的部分元素可以用切片 格式:  假定list或tuple组成的元素组名为m m[起始值:终止值:步长] 说明: a. 起始值如果是0,可以省略,但是中间的冒号(:)一定要带上 b. 起始值,终止值限定的是索引范围. c. 如果从前面开始取数,那么索引时不包括索引[终止值],因为索…
python的高级特性:切片,迭代,列表生成式,生成器,迭代器 #演示切片 k="abcdefghijklmnopqrstuvwxyz" #取前5个元素 k[0:5] k[:5] #后5个元素 k[-5:] #vwxyz #每隔一个取一个 k[::2] #acegikmoqsuwy #原样复制一个 k[:] #演示迭代 d={'a':1,'b':2,'c':3} for key in d: print(key) #结果输出abc, 即输出key, 而且要注意dict的迭代顺序不像lis…
一.迭代对象 1.概念 迭代对象:可以直接作用于for循环的对象统称为可迭代对象:Iterable. 2.可以直接作用于for循环的数据类型 (1)集合类数据类型,如list, tuple, dict, set, str等 (2)generator,包括生成器和带yield的generator function. 以上这些直接作用于for循环的对象统称为可迭代对象:Iterable. 3.判断一个对象是不是可迭代对象(Iterable) 可以使用isinstance,需要导入模块 from co…
分页查找 #5.随意写一个20行以上的文件(divmod) # 运行程序,先将内容读到内存中,用列表存储. # l = [] # 提示:一共有多少页 # 接收用户输入页码,每页5条,仅输出当页的内容 def read_page(bk_list,n,endline=None): startline = 5 * (n-1) endline = endline+startline-1 if endline else startline + 4 # print(startline,endline) fo…
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,for,while) Python 运算符 1.算术运算: 2.比较运算: 3.赋值运算: 4.逻辑运算:  5.成员运算: 基本数据类型 1.数字 int(整型) 数字 int ,所有的功能,都放在int里 a1 = a1 = - int 将字符串转换为数字 a = " print(type(a),…
Python 基础 二 今天对昨天学习的Python基础知识进行总结,学而不思则惘,思而不学则殆! 一.先对昨天学习的三大循环的使用情况进行总结: 1.while循环的本质就是让计算机在满足某一条件的前提下去重复做同一件事情(即while循环为条件循环,包含:1.条件计数循环,2条件无限循环) 2.for 循环提供了python中最强大的循环结构(for循环是一种迭代循环机制,而while循环是条件循环,迭代即重复相同的逻辑操作,每次操作都是基于上一次的结果,而进行的) 3.for循环主要有以下…
怎么判断一个对象是可迭代对象还是迭代器 例子 from collections import Iterable, Iterator lst = ['Today is Wednesday', 'Tomorrow is Thursday', 'The day after tomorrow is Friday'] it = lst.__iter__() 方案一 使用dir()函数查看对象的属性列表,如果只有__iter__()函数则是可迭代的,如果__iter__()和__next__()函数都有则是…