Python3基础教程第7章课件

PPT
  • 阅读 82 次
  • 下载 0 次
  • 页数 78 页
  • 大小 208.101 KB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Python3基础教程第7章课件
可在后台配置第一页与第二页中间广告代码
Python3基础教程第7章课件
可在后台配置第二页与第三页中间广告代码
Python3基础教程第7章课件
可在后台配置第三页与第四页中间广告代码
Python3基础教程第7章课件
Python3基础教程第7章课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 78
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】Python3基础教程第7章课件.pptx,共(78)页,208.101 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2355.html

以下为本文档部分文字说明:

Python3基础教程第2版慕课版第7章文件和数据格式化本章主要内容:文件读写CSV文件数据组织的维度7.1文件本节主要内容:文件类型打开和关闭文件读写文本文件读写二进制文件用文件存储对象目录操作7.1.1文件类型通常,文件可分为文本文件和

二进制文件。文本文件根据字符编码保存文本,常见字符编码如ASCII、UTF-8、GB2312等。文本文件按字符读取文件,一个字符占用一个或多个字节。文本文件常用于保存字符组成的文本,整个文件可看作一个长字符串。二进制文件存储的是数据的二进制代码(位0和位

1),即将数据在内存中的存储形式复制到文件中。二进制文件没有字符编码,文件的存储格式与用途无关。二进制文件通常用于保存图片、音频和视频等数据。图片、音频和视频有不同的编码格式,如png格式的图片、mp3格式的音频、mp4格式的视频等。二进制文件通常按字节读取文件。Python根据打

开模式按文本文件或二进制文件格式读写文件中的数据。按文本文件格式读取文件数据,示例代码如下。>>>file=open('data.txt','rt')#打开文件>>>print(file.readline()

)#从文件读一行数据,输出Python3基础教程>>>file.close()#关闭文件按文本文件格式读取数据时,Python会根据字符编码将数据解码为字符串,将数据转换为有意义的字符。按二进制文件格式读取文件数据,示例代码如下。>>>file=open('data.txt

','rb')>>>print(file.readline())b'Python3\xbb\xf9\xb4\xa1\xbd\xcc\xb3\xcc'>>>file.close()按二进制文件格式读取数据时,数据为字节流,Python不执行解码操作,读取的数据作为bytes字符串,并按byt

es字符串格式输出。7.1.2打开和关闭文件可用Python内置的open()函数来打开文件,并返回关联的文件对象。open()函数基本格式为如下。myfile=open(filename[,mode])其中:myfile为引用文件对象的变量filen

ame为文件名字符串mode为文件读写模式。在文件名中可包含相对或绝对路径,省略路径时,Python在当前工作目录中搜索文件。IDLE的当前工作目录为Python安装目录。在系统命令提示符窗口中执行python.exe进入交互环境或执行Python

程序时,当前目录为Python的当前工作目录。文件读写模式“r”:只读模式,默认值。“w”:只写模式,创建新文件。若文件已存在,则原来的文件被覆盖。a”:只写、追加模式。若文件存在,在文件末尾添加数据。文件不存在时

会创建新文件。“x”:只写模式,创建新文件。若文件已存在,则报错。“t”:按文本格式读写文件数据,默认方式。“b”:按二进制格式读写文件数据。“+”:组合读写模式,同时进行读、写操作。“t”“b”和“r”“w”“a”“x”可组合使用,“+”必须和“r”“w”“a

”组合使用。常用文件读写模式组合省略读写模式:只能按文本格式从文件读取数据,等同于“rt”。例如,open('data.txt')。“rb”:只能按二进制格式从文件读取数据。例如,open('data.txt','rb')。“w”和“w

t”:只能按文本格式向文件写入数据。例如,open('data.txt','w')。“r+”:可按文本格式从文件读取数据,或向文件写入数据。例如,open('data.txt','r+')。“wb”:只能按二进制格式向文件写入数据。

例如,open('data.txt','wb')。“rb+”:可按二进制格式从文件读取数据,或向文件写入数据。例如,open('data.txt','rb+')。“a+”:可按文本格式从文件读取数据,或向文件写入数据,写入的数据始终添加到文件末尾。例如,open('data.txt

','a+')。“ab+”:可按二进制格式从文件读取数据,或向文件写入数据,写入的数据始终添加到文件末尾。例如,open('data.txt','ab+')。文件指针打开文件后,Python用一个文件指针记录当前读写位置。以“w”或“a”模式打开文件时,文件指针指向

文件末尾以“r”模式打开文件时,文件指针指向文件开头。Python始终在文件指针的位置读写数据,读取或写入一个数据后,根据数据长度,向后移动文件指针。close()方法close()方法用于关闭文件,示例代码如下。myfile.close()#关闭文件通常,Python会使用内存缓冲

区缓存文件数据。关闭文件时,Python将缓冲的数据写入文件,然后关闭文件,释放对文件的引用。程序结束时,Python可自动关闭未使用的文件。flush()方法可将缓冲区的内容写入文件,但不关闭文件,示例代码如下。myfile.flush()7.1.3读写文本文件文本文件有关的读

写方法如下:read():将从文件指针位置开始到文件末尾的内容作为一个字符串返回。read(n):将从文件指针位置开始的n个字符作为一个字符串返回。readline():将从文件指针位置开始到下一个换行符号的内容作为一个字符串返回,读取内容包含换行符号。r

eadlines():将从文件指针位置开始到文件末尾的内容作为一个列表返回,每一行的字符串作为一个列表元素。write(xstring):在文件指针位置写入字符串,返回写入的字符个数。writelines(xlist):将列表中的数据合并为一个字符串写入到文件指针位置,返回写入的字符

个数。。seek(n):将文件指针移动到第n个字节,0表示指向文件开头。tell():返回文件指针当前位置。文本文件按字符读取数据,如果文件包含Unicode字符,Python会自动进行转换。文本文件中每行末尾以回车换行符号结束在读取的字符串中,Python用“\n”

代替回车换行符号。二进制文件读取的回车换行符号为“\r\n”。文本文件code.txt的数据如下one第一行two第二行three第三行1.以“r”模式打开文件读数据以“r”模式打开文件时,文件指针位于文件开头,只能从文件读取数据,示例代码

如下。>>>myfile=open(r'd:\code.txt')#以默认只读方式打开文件>>>x=myfile.read()#读文件全部内容到字符串>>>x#每行末尾的换行符号在字符串中为“\n”'one第

一行\ntwo第二行\nthree第三行'>>>print(x)#打印格式与原文件完全一致one第一行two第二行three第三行>>>myfile.read()#文件指针已指向文件末尾,返回空字符串''>>>myfi

le.seek(0)#将文件指针移动到文件开头0>>>myfile.read(5)#读5个字符'one第一'>>>myfile.tell()#返回文件指针的当前位置7>>>myfile.readline()#读取从文件指针当前位置到当前行末尾的

字符串'行\n'>>>myfile.readline()#读下一行'two第二行\n'>>>myfile.seek(0)0>>>myfile.readlines()#读文件全部内容到列表['one第一行\n','two第二行\n','thre

e第三行']>>>myfile.seek(0)0>>>forxinmyfile:print(x)#以迭代方式读文件…one第一行#请思考两行数据之间为什么有一个空行?two第二行three第三行>>>myfi

le.close()#关闭文件2.以“r+”模式打开文件以“r+”模式打开文件时,文件操作具有下列特点。➢可从文件读取数据,也可向文件写入数据。➢刚打开文件时,文件指针指向文件开头。➢在执行读操作后执行写操作时,不管文件指针位置在哪里,都将数据写入文件末尾。

➢要在特定位置写入数据,需要先执行seek()函数指定文件指针位置,然后写入数据。>>>myfile=open(r'd:\code.txt','r+')>>>myfile.write('oneline')#写入字符串,此时写入到文件开头,覆盖原数据7>>>myfile.seek(0)

#定位文件指针到文件开头0>>>myfile.read()#读取全部数据'oneline行\ntwo第二行\nthree第三行'>>>myfile.seek(7)#将文件指针指向第8个字节(位置为7)7>>>myfile.write('123456

')#写入数据,会覆盖原第一行末尾的换行符号6>>>myfile.seek(0)#定位文件指针到文件开头0>>>myfile.read()#读取数据,查看前面写入的数据'oneline123456o第二行\nthree第三行'>>>myfile.seek(0)#定位文件指针到文件开头0>

>>myfile.read(5)#读取5个字符'oneli'>>>myfile.tell()#查看文件指针位置5>>>myfile.write('xxx')#写入数据,读取数据后立即写入,数据写入文件末尾3>>>myfile.seek(0)#定位文件指针到文件开头0

>>>myfile.read()#读取数据,查看前面写入的数据,“xxx”在文件末尾'oneline123456o第二行\nthree第三行xxx'>>>myfile.close()#关闭文件3.以“w”模式打开文件以“w”模式打开文件时,会创建一

个新文件。如果存在同名文件,原来的文件会被覆盖。所以,使用“w”模式打开文件时应特别小心。以“w”模式打开文件时,只能向文件写入数据。>>>myfile=open(r'd:\code2.txt','w')>>>myfile.

write('one\n')#将字符串写入文件4>>>myfile.writelines(['1','2','abc'])#将列表写入文件,列表对象必须都是字符串>>>myfile.close()#关闭文件>>>myfile=op

en(r'd:\code2.txt')#重新打开文件,读取前面写入的数据>>>myfile.read()'one\n12abc'>>>myfile.close()#关闭文件在向文本文件写入需要换行的数据时,应在字符串末尾嵌入“\n”,否则数据不会换行。

4.以“w+”模式打开文件以“w+”模式打开文件时,允许同时读写文件>>>myfile=open(r'd:\code2.txt','w+')>>>myfile.read()#新建文件,所以其中没有数据,返回空字符串''>>>myfile.

write('one\n')#将字符串写入文件4>>>myfile.writelines([1,2,'abc'])>>>myfile.seek(0)#将文件指针移动到文件开头0>>>myfile.readline()#读第1行'one\n'>>>myfile.

readline()#读第2行'12abc'>>>myfile.readline()#已经到文件末尾,返回空字符串''>>>myfile.seek(4)#将文件指针移动到第4个字节之后4>>>myfile.write('xxxxxxx')#将字符串写入文件7>

>>myfile.seek(0)#将文件指针移动到文件开头0>>>myfile.read()#读取全部数据'one\nxxxxxxx'>>>myfile.close()#关闭文件5.以“a”模式打开文件以“a”模式打开文件时,只能向文件写入数据,文件打开时文件指针指向文件末尾,向文件写入的数据

始终添加到文件末尾。>>>myfile=open(r'd:\code2.txt','a')>>>myfile.write('\n123456')#将字符串写入文件7>>>myfile.seek(4)4>>>myfile.write('****

*')#虽然文件指针指向第5个字符,但仍写入文件末尾5>>>myfile=open(r'd:\code2.txt')#重新以只读方式打开文件>>>print(myfile.read())#查看读取的数据onexxxxxxx123456*****6.以a+”模式打开文件“a+”与“a

”模式的唯一区别是前者除了允许写入数据,还可以读取文件数据>>>myfile=open(r'd:\code2.txt','a+')>>>myfile.tell()#查看文件指针位置,此时应为文件末尾25>

>>myfile.write('\n新添加的数据')#将字符串写入文件7>>>myfile.seek(0)#将文件指针移动到文件开头0>>>print(myfile.read())#打印读取的文件内容onex

xxxxxx123456*****新添加的数据>>>myfile.seek(5)#将文件指针移动第5个字符之后5>>>myfile.write('newdata')#将字符串写入文件7>>>myfile.seek(0)#将文件指针移动到文件开头0>>

>print(myfile.read())#打印读取的数据,查看前面写入的“newdata”的位置onexxxxxxx123456新添加的数据newdata>>>myfile.close()#关闭文件7.1.4读写二进制文件上一节中讲述的文本文件的各种读写方法均可用

于二进制文件,区别在于:二进制文件读写的是bytes字符串。例如,下面的代码先以“wb”模式创建一个二进制文件,然后分别用“r”和“rb”模式打开文件,读取文件内容。>>>myfile=open(r'd:\code3.txt','wb')

#创建二进制文件>>>myfile.write('aaaaa')#出错,二进制文件只能写入bytes字符串Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:abytes-l

ikeobjectisrequired,not'str'>>>myfile.write(b'aaaaa')#正确,将bytes字符串写入文件5>>>myfile.write(b'\nbbbb')5>>>myfile.close()>>>myfile=o

pen(r'd:\code3.txt','r')>>>print(myfile.read())#打印读取文件的全部内容aaaaabbbb>>>myfile=open(r'd:\code3.txt','rb')>>>print(myfile.rea

d())#打印读取文件的全部内容b'aaaaa\nbbbb'>>>myfile.close()#关闭文件7.1.5用文件存储对象用文本文件或二进制文件格式直接存储Python中的各种对象,通常需要进行繁琐的转换。可以使用Pyth

on标准模块pickle处理文件中对象的读写>>>x=[1,2,'abc']#创建列表对象>>>y={'name':'John','age':25}#创建字典对象>>>myfile=open(r'd:\objdata.bin','wb')>>>importpickle#导入pic

kle模块>>>pickle.dump(x,myfile)#将列表对象写入文件>>>pickle.dump(y,myfile)#将字典对象写入文件>>>myfile.close()#关闭文件>>>myfile=open(r'e:\pytemp\objdata.bin','r

b')>>>myfile.read()#直接读取文件中的全部内容,查看内容b'\x80\x03]q\x00(K\x01K\x02X\x03\x00\x00\x00abcq\x01e.\x80\x03}q\x00(X\x03\x00\x00\x00ageq\x01K\x19X\x04\

x00\x00\x00nameq\x02X\x04\x00\x00\x00Johnq\x03u.’>>>myfile.seek(0)#将文件指针移动到文件开头0>>>x=pickle.load(myfile)#从文件读取对象>>>x[1,2,'abc']>>>x=pick

le.load(myfile)#从文件读取对象>>>x{'age':25,'name':'John'}7.1.6目录操作文件操作通常都会涉及到目录操作。目录是一种特殊的文件,它存储当前目录中的子目录和文件的相关信息。Python的os模块提供了目录操作函数,使用之前应先导入模块,示例代码如下。

importos1.os.getcwd()该方法返回Python的当前工作目录,示例代码如下。>>>os.getcwd()'D:\\pytemp'2.os.mkdir()该方法用于创建子目录,示例代码如下。>>>os.mkdir('temp')#

在当前目录中创建子目录>>>os.mkdir('d:\ptem\test')#在绝对路径d:\ptem中创建子目录test3.os.rmdir()该方法用于删除指定的空子目录,示例代码如下。>>>os.rmdir('temp')#删除当前目录的子

目录>>>os.rmdir('d:\ptem\test')#删除绝对路径中的子目录testos.rmdir()只能删除空的子目录,删除非空子目录时会出错,示例代码如下。>>>os.rmdir('pycode')Traceback(mostrecentcalllast):File"<stdi

n>",line1,in<module>OSError:[WinError145]目录不是空的。:'pycode'4.os.listdir()该方法返回目录包含的子目录和文件名称,示例代码如下。>>>os.listdir()#列出当前目录内容['code2.txt','pycode','tem

p']>>>os.listdir('d:\ptem')#列出指定目录内容['test','test.py']5.os.chdir()该方法用于改变当前目录,示例代码如下。>>>os.getcwd()#查看当前目

录'D:\\pytemp'>>>os.mkdir('tem')#在当前目录中创建子目录>>>os.chdir('tem')#切换当前目录>>>os.getcwd()#查看新的当前目录'D:\\pytemp\\tem'>>>os.chdir('d:\ptem')#用绝对路径

指定要切换的目录>>>os.getcwd()'d:\\ptem'>>>os.chdir('c:/’)#切换到其他磁盘的目录>>>os.getcwd()'c:\\'6.os.rename()该方法用于修改文件的名称,示例代码如下。>>>os.rename(r'd:\ptem\test.py','

d:\ptem\code.py')7.os.remove()该方法用于删除指定的文件,示例代码如下。>>>os.remove('d:\ptem\code.py')7.2读写CSV文件本节主要内容:CSV文件的基本概念读CSV文件数据将数据写入CSV

文件7.2.1CSV文件的基本概念CSV指Comma-SeparatedValues,即逗号分隔值。CSV文件也是文本文件,其存储使用特定分隔符分隔的数据。分隔符可使用逗号、空格、制表符、其他字符

或字符串。例如,下面的内容是一个典型的CSV文件内容。专业名称,层次,科类工程造价,高起专,文科工商企业管理,高起专,文科建筑工程技术,高起专,理科工程造价,高起专,理科汽车服务工程,专升本,理工类可用Windows记事本创建该文件,保存时使用UTF-8编码格式。

使用open()函数打开文件时,应用“encoding='utf-8'”作为参数指定编码格式,以便Python程序正确读取其中的汉字。CSV文件也可使用Excel打开、查看和编辑数据。CSV文件通常由多个记录组成,第1行通常为记录的各个字段名称,第2行开始为记录数据。每条记录包含相

同的字段,字段之间用分隔符分隔。可以使用open()函数打开CSV文件,按文本文件方式读写CSV数据。采用这种方式需要将读取的每行字符串转换成字段数据,写入时需要添加分隔符。Python提供的csv模块

提供了CSV文件读写功能。7.2.2读CSV文件数据csv模块提供了两种读取器对象来读取CSV文件数据:常规读取器和字典读取器。1.使用常规读取器csv模块中的reader()函数用于创建常规读取器对象,其基

本格式如下。csvreader=csv.reader(csvfile,delimiter='分隔符')其中:变量csvreader用于引用读取器对象;csvfile是open()函数返回的文件对象;delimiter参数指定CSV文件使用的数据分隔符,默认为逗号

。常规读取器对象是一个可迭代对象,每次迭代返回一个包含一行数据的列表,列表元素对应CSV记录的各个字段。可用for循环或next()函数迭代常规读取器对象。>>>importcsv>>>csvfile=open(r'd:\招生专业.csv',enc

oding='utf-8')>>>csvreader=csv.reader(csvfile)#创建读取器对象>>>forrowincsvreader:#用循环迭代读取CSV文件...print(row)#输出包含CSV文件数据行的列表...>>>csvfile.seek(0)

#将文件指针移动到文件开头0>>>next(csvreader)#使用next()函数迭代读取CSV文件['专业名称','层次','科类']>>>next(csvreader)['工程造价','高起专','文科']>>>next(csvreader)['工商企业管理','高起专','文科'

]>>>csvfile.close()#关闭文件2.使用字典读取器csv模块中的DictReader()函数用于创建字典读取器对象,其基本格式如下。csvreader=csv.DictReader(csvfile)其中:变量csvreader用于引用读取器对象

csvfile是open()函数返回的文件对象。字典读取器对象是一个可迭代对象,每次迭代返回一个包含一行数据的排序字典对象(OrderedDict,即排好序的字典对象)。字典读取器对象默认将CSV文件的第1行作为字段

名称,将字段名称作为字典中的“键”。CSV文件中第2行开始的每行数据按顺序作为“键”映射的“值”。可用for循环或next()函数迭代字典读取器对象。>>>importcsv>>>csvfile=open(r'd:\招生专业

.csv',encoding='utf-8')>>>csvreader=csv.DictReader(csvfile)#创建读取器对象>>>forrowincsvreader:#用循环迭代读取CSV文件...print(row)#输出包含CSV文件数据行的字典对象...>>>csvfi

le.seek(0)0>>>forrowincsvreader:#用“键”索引输出数据...print(row['专业名称'],row['层次'],row['科类'],sep='\t')...>>>csvfile.seek(0)0>>

>next(csvreader)#用next()函数迭代OrderedDict([('专业名称','专业名称'),('层次','层次'),('科类','科类')])>>>next(csvreader)OrderedDict([('专业名称','工程造价'),('层次',

'高起专'),('科类','文科')])>>>row=next(csvreader)>>>print(row['专业名称'],row['层次'],row['科类'])工商企业管理高起专文科>>>csvfile.close()7.2

.3将数据写入CSV文件1.用常规写对象写数据常规写对象由csv.writer()函数创建,其基本格式如下。csvwriter=csv.writer(csvfile)其中:变量csvwriter用于引用写对象,csvfile是open()函数返回的文

件对象。写对象的writerow()方法用于向CSV文件写入一行数据,其基本格式如下。csvwriter.writerow(data)其中,data是一个列表对象,包含一行CSV数据。将数据写入CSV后,w

riterow()方法会在每行数据末尾添加两个换行符号。>>>importcsv>>>csvfile=open('d:/csvdata2.txt','w')#打开文件>>>csvwriter=csv.writer(csvfile)#创建常规写对象>>>csvwriter.wr

iterow(['xm','sex','age'])#写入字段标题12>>>csvwriter.writerow(['张三','男','25'])#写入数据行9>>>csvwriter.writerow(['韩梅梅','女','18'])

#写入数据行10>>>csvfile.close()#关闭文件>>>csvfile=open('d:/csvdata2.txt')#以只读模式打开文件>>>csvfile.read()#读取全部数据,注意每行末尾有两个换行符号'xm,sex,age\n\n张三,男,25\n\n

韩梅梅,女,18\n\n'>>>csvfile.seek(0)0>>>print(csvfile.read())#打印文件数据,因为每行末尾有两个换行符号,所以有空行出现xm,sex,age张三,男,25韩梅梅,女,182.用字典写对象向CSV文件写入数据字

典写对象由csv.DictWriter()函数创建,其基本格式如下。csvwriter=csv.DictWriter(csvfile,fieldnames=字段名列表)其中:变量csvwriter用于引用写对象csvfile是open()函数返

回的文件对象。参数fieldnames用列表指定字段名,它决定将字典写入CSV文件时,“键:值”对中的各个值的写入顺序。字典写对象的writerow()方法用于向CSV文件写入一行数据,其基本格式如下。csvwriter.writerow(data)其

中,data是一个字典对象,包含一行CSV数据。>>>importcsv>>>csvfile=open('d:/csvdata2.txt','w')#打开文件>>>csvwriter=csv.DictWriter(csvfile,fieldnames=

['xm','sex','age'])#创建字典写对象>>>csvwriter.writeheader()#写入字段名>>>csvwriter.writerow({'xm':'韩梅梅','sex':'女','age':'18'}

)#写数据10>>>csvwriter.writerow({'xm':'Mike','sex':'male','age':'20'})#写数据14>>>csvfile.close()>>>csvfile=open('d:/csvdata2.txt')#以只读模式打

开文件>>>csvfile.read()#读取数据进行查看'xm,sex,age\n\n韩梅梅,女,18\n\nMike,male,20\n\n'7.3数据组织的维度本节主要内容:一维数据的处理二维数据的处理数据排序数据查找7.3.1基本概念计算机在处理数据时,总是按

一定的格式来组织数据,以便提高处理效率。数据的组织格式表明数据之间的基本关系和逻辑,进而形成“数据组织的维度”。根据数据关系的不同,可将数据组织分为一维数据、二维数据和高维(或多维)数据。1.一维数据一维数据由具有对等关系

的有序或无序的数据组成,采用线性方式组织。数学中的集合和数组就是典型的一维数据。例如,下面的一组专业名称就属于一维数据。计算机应用,工程造价,会计学,影视动画2.二维数据二维数据也称为表格数据,由具有关联关系的数据组成,采用二维表格组织数据。数学中的矩阵、二维表格都属于二

维数据。例如,下面的成绩表是一组二维数据。姓名语文数学物理小明808590韩梅梅978790李雷8890703.高维数据维度超过二维的数据都称为高维数据。例如,成绩表加上学期,表示学生每学期的各科成绩,则构成三维数据。再加

上学校信息,表示多个学校的学生在每个学期的各科成绩,则构成四维数据。高维数据在Web系统中十分常见,例如,XML、JSON、HTML等格式均可用于表示高维数据。高维数据通常使用JSON字符串表示,可以多层嵌套。高维数据示例下面的JSON字符串是两个学期的

学生课程成绩数据。{"第一学期":[{"姓名":"小明","语文":80,"数学":85,"物理":90},{"姓名":"韩梅梅","语文":97,"数学":87,"物理"90:},{"姓名":"李雷","语文":88

,"数学":90,"物理":70}],"第二学期":[{"姓名":"小明","语文":89,"数学":78,"物理":97},{"姓名":"韩梅梅","语文":77,"数学":88,"物理":89},{"姓名":"李雷","语文":97,"数学":76

,"物理":88}],}7.3.2一维数据的处理一维数据是简单的线性结构,在Python中可用列表表示,示例代码如下。>>>专业=['计算机应用','工程造价','会计学','影视动画']>>>print(专业)

['计算机应用','工程造价','会计学','影视动画']>>>专业[0]'计算机应用'一维数据可用文本文件进行存储,文件可使用空格、逗号、分号等作为数据的分隔符,示例代码如下。计算机应用工程造价会计学影视动画计算

机应用,工程造价,会计学,影视动画计算机应用;工程造价;会计学;影视动画在将一维数据写入文件时,除了写入数据之外,还需要额外写入分隔符。在从文件读取数据时,需使用分隔符来分解字符串>>>file=open(r'd:\data1.txt','w')#打开文本文件>>>专业=['计

算机应用','工程造价','会计学','影视动画']#用列表表示一维数据>>>forninrange(len(专业)-1):#将最后一个数据之前的数据写入文件...file.write(专业[n])#写入数据

...file.write('')#写入分隔符...>>>file.write(专业[n+1])#写入最后一个数据4>>>file=open(r'd:\data1.txt')#重新打开文件>>>print(file.read())#输出从文件读取的数据计算机应用工程造价会计学

影视动画>>>file.seek(0)0>>>zy=file.read()#将文件数据读出,存入字符串>>>zy'计算机应用工程造价会计学影视动画'>>>data=zy.split('')#将字符串解析为列表,还原数据>>>data['计算机应用','工程造价','会计学

','影视动画']7.3.3二维数据的处理二维数据可看作是嵌套的一维数据,即一维数据的每个数据项为一组一维数据。可用列表来表示二维数据,示例代码如下。>>>scores=[['姓名','语文','数学','物理'],['小明',80,85,90],

['韩梅梅',97,87,90],['李雷',88,90,70]]可使用CSV文件存储二维数据,从文件读取二维数据时,应注意文件末尾的换行符的处理>>>scores=[['姓名','语文','数学','物理'],...['小明',80,85,90],...['韩梅梅',97,87,90],...

['李雷',88,90,70]]>>>>>>importcsv>>>file=open(r'd:\scores_data.txt','w+')#打开存储二维数据的文件>>>writer=csv.writer(file)#创建CSV

文件写对象>>>forrowinscores:...writer.writerow(row)#将二维数据中的一行写入文件...>>>file.seek(0)0>>>print(file.read())#输出从文件读取的数据姓名,语文,数学,物理小明,80,85,90韩梅梅,97,87,90李雷,8

8,90,70>>>data=[]#创建空列表,用于存储从文件读取的二维数据>>>file.seek(0)#将文件指针移动到文件开头0>>>reader=csv.reader(csvfile)>>>forrowinreader:...ifl

en(row)>0:...data.append(row)#将非空行中的数据加入列表...>>>data#查看还原的二维数据[['姓名','语文','数学','物理'],['小明','80','85','90'],['

韩梅梅','97','87','90'],['李雷','88','90','70']]>>>forrowindata:...print('%8s\t%s\t%s\t%s'%(row[0],row[1],row[2],row[3]))#数据格式化输出...7.3.4数据排序常见的排序方法:选择排

序、冒泡排序和插入排序。Python列表的sort()方法和内置的sorted()函数均可用于排序本节从算法的角度讲解各种常见的排序方法。1.选择排序选择排序的基本原理:将n个数按从小到大排序。首先从n个数中选出最小的数,将其与第1个数据交换;

然后对剩余的n-1个数采用同样的处理方法经过n-1轮完成排序。2.冒泡排序冒泡排序的基本原理:将n个数按从小到大排序。首先,依次比较相邻的两个数,如果后面的数更小,则交换两个数的位置,经过这样一轮处理,最大的数据到

了最后;然后对剩余的前n-1个数采用同样的处理方法经过n-1轮完成排序。3.插入排序插入排序的基本原理:对n个数按从小到大排序。将第1个数放入新列表,然后依次将剩余的n-1个数插入新列表。每次在新列表中插入数据时,先查找应插入的位置,然后再插入数,保证新列表中的数

始终按从小到大的顺序排列。7.3.5数据查找1.顺序查找基本原理:在线性表中按顺序查找指定元素。2.二分法查找基本原理:二分法查找适用于有序的线性表。假设线性表data中第一个元素的位置为start,最后一个元素的位置为end,在其中查找x。查找的基本

步骤如下。(1)计算mid=(start+end)/2,取整数。(2)如果x等于data[mid],则找到x,结束查找。(3)如果x小于data[mid],令end=mid-1。如果end<start,表示线性表不包含x,结束查找,否则返回(1)。(4)如果x

大于data[mid],令start=mid+1。如果end<start,表示线性表不包含x,结束查找,否则返回(1)。7.4综合实例在IDLE创建一个Python程序,将用户的id和密码以字典对象的格式存入文件,然后从文件读取数据,验证输入的

id和密码是否正确。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?