教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

python教程/学习笔记(8)

来源:网络收集 时间:2026-08-29
导读: 例如: >>> 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向一

例如:

>>> 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字,全部文档内容请下载后查看。喜欢就下载吧 ……

python教程/学习笔记(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/614204.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)