python教程/学习笔记(8)
例如:
>>> s1 = set(\ >>> s1 set(['q', 'i', 's', 'r', 'w'])
>>> s2 = set([123,\>>> s2
set(['facebook', 123, 'google', 'book', 'face']) >>>nullset=set() >>>nulset set([])
4.6.2.set方法:
(1)add向一个集合中加一个元素
对集合a_set增加一个元素:a_set.add('hehe')
(2)update把一个集合合到另一个或添加一个不可变对象 ·加集合 >>> s1
set(['a', 'b']) >>> s2
set(['github', 'qiwsir'])
>>> s1.update(s2) #把s2的元素并入到s1中. >>> s1 #s1的引用对象修改 set(['a', 'qiwsir', 'b', 'github'])
>>> s2 #s2的未变 set(['github', 'qiwsir'])
·加其他不可变对象 >>> s2.update(\>>> s2
set(['github', 'o', 'g', 'qiwsir']) >>> s2.update((2,3)) >>> s2
set([2, 3, 'g', 'o', 'github', 'qiwsir'])
(3)pop:从set中任选一个元素删除,并返回该值。pop不能指定元素 (4)remove:删除某指定元素
(5)discard:删除某指定元素,不存在就不删
4.7.对数据结构的几类操作 ·循环(loop),指的是在满足条件的情况下,重复执行同一段代码。比如,while语句。 ·迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。比如,for语句。 ·递归(recursion),指的是一个函数不断调用自身的行为。比如,以编程方式输出著名的斐波纳契数列。 ·遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。
4.7.1.迭代
4.7.1.1.几个概念:
(1)迭代工具:包括for循环、列表解析、in成员关系测试.....等等在内的,用于依次访问可迭代对象(容器)内元素的操作
(2).迭代器对象:具有__next__()方法的对象。该方法能够自动返回下一个结果,当到达序列结尾时,引发StopIteration异常。
(3).可迭代对象:具有__iter__()方法的对象。该方法可获取其迭代器对象。e.g.列表、字符串、字典
4.7.1.2.迭代过程: (以for循环为例)
for循环开始:自动调用可迭代对象的__iter__()方法以获取其迭代器对象(含有next方法) for循环:自动调用迭代器对象的__next__()方法获取下一个元素
for循环结束:当__next__()调用引发StopIteration异常时,结束循环。
# 注意 iter()next()迭代结束后,指针会移动到最后一个元素的后面,所以报StopIteration,想要再开始,需要重新再入迭代对象。 4.7.1.3.几点说明: (1)iter()函数:
返回值是一个迭代器对象;
参数需要是一个附和迭代协议的对象或者是一个序列对象; next()配合与之使用
(2)可迭代对象也可以是迭代器对象,如文件对象。此时可迭代对象自己有__next__()方法,而其__iter__()方法返回的就是它自己
(3)对于许多内置对象及其派生对象,如list、dict等,由于需要支持多次打开迭代器,因此自己并非迭代器对象,需要用__iter__()方法返回其迭代器对象,并用迭代器对象来访问其它元素。
4.7.1.4.逐个访问:
在python中,访问对象中每个元素,可以这么做:(例如一个list) 方法一.>>> lst=['q', 'i', 'w'] >>> for i in lst: ... print i, ... q i w
方法二.还可以这样:
>>> lst_iter = iter(lst) #对原来的list实施了一个iter() >>> lst_iter.next() #要不厌其烦地一个一个手动访问 'q'
>>> lst_iter.next() 'i'
>>> lst_iter.next() 'w'
>>> lst_iter.next()
Traceback (most recent call last): File \StopIteration
方法三.
>>> lst_iter = iter(lst) #那就再写一遍,上面的错误暂且搁置,回头在研究 >>> while True:
... print lst_iter.next() ...
q #果然自动化地读取了 i w
Traceback (most recent call last): #读取到最后一个之后,报错,停止循环 File \StopIteration >>>
五.文件操作
5.1.打开文件,用内置函数open() (1)假设有个名为‘somefile.txt’的文本文件(大概是用文本编辑器创建的),储存路径为C:\\text 打开方式:f=open(r'C:\\text\\somefile.txt ') (2)标准打开方式
f=open('filename' ,'mode', buffersize)
filename:要打开的文件的名字,可以是相对路径也可以是绝对路径 mode :可选参数,文件打开的模式
buffersize:可选参数,缓冲区的大小(0为无缓冲,1为有缓冲,大于1代表缓冲区大小,小于1代表使用默认缓冲区大小)
文件模式含义
r 以读方式打开(若不写模式,默认为是读) w 以写方式打开,覆盖整个文件,不存在则创建 a 以再文件末尾追加方式打开(从EOF开始),不存在则创建 + 以读写方式打开(可添加到其他模式后面) b 以二进制(可添加到其他模式后面) 模式的组合
r+表示以读写模式打开,不会创建不存在的文件,从顶部开始写,覆盖之前此位置内容 w+ 表示以读写模式打开,若文件存在,则覆盖整个文件;不存在则创建 rb+ 表示以二进制读写模式打开;其他同r+ wb+表示以二进制读写模式打开;其他同w+
rb读取一个二进制文件,这在处理二进制文件,如声音剪辑或图像时很有用。
5.2.读和写
有名为f的类文件对象,可用f.write和f.read方法写入和读取数据。
(1)每次调用f.write(string)时,所提供的参数string会被追加到文件后面,例如: >>>f=open('somefile.txt','w') >>>f.write('hello,') >>>f.write('world!')
>>>f.close() # 完成了一个文件操作后调用close
(2)读取只要告诉流要读多少字符即可,接着上面的例子:
>>>f=open('somefile.txt','r') # 只是读文件,'r'可以省略,因为默认模式是读取 >>>f.read(4) # 指定要读4个字符 'hell'
>>>f.read() # 不提供要读取字符数,默认读取剩下的所有 'o,world!'
5.3.csv文件(逗号分隔值文件) 5.3.1.遍历csv文件 import csv
fileobj=open('xxx.csv','rU') # 创建文件对象
reader=csv.reader(fileobj) # 调用函数csv.reader创建特殊的csv-reader对象 for line in reader:
六.函数、模块与异常处理 6.1.Python程序的结构 6.2.函数
6.2.1.定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:
(1)函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
(2)任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。 (3)函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。 (4)函数内容以冒号起始,并且缩进。
Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
6.2.2.如果在函数里用方法/函数修改了参数,那么在调用这个函数的程序里,原始的参数也被改变了。哪怕是形式参数,也可以改变原始参量。因为,所有参数(自变量)在Python里都是按引用传递。但注意,函数里面赋值不会改变全局变量! …… 此处隐藏:2983字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




