Python程序开发基础 课件 项目7 读写文件及格式化数据_第1页
Python程序开发基础 课件 项目7 读写文件及格式化数据_第2页
Python程序开发基础 课件 项目7 读写文件及格式化数据_第3页
Python程序开发基础 课件 项目7 读写文件及格式化数据_第4页
Python程序开发基础 课件 项目7 读写文件及格式化数据_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

文件读写-查询身份证归属地任务描述

居民身份证是用于证明持有人身份的一种特定证件,由身份证号码唯一标识。在我国身份证号码由十七位本体码数字和一位校验码数字组成,其中前六位数字为地址码。地址码标识了编码对象常住户口所在县的行政区划代码,通过身份证号码的前六位便可以确定持有人的常住户口归属地。

本任务要求编写程序,实现根据地址码对照表和身份证号码查询居民常住户口归属地的功能。文件的读与写01程序运行过程中除了可以使用变量来保存外,还可以使用文件来保存。而且文件既可以保存大量数据,又可以永久保存数据。文件,想必大多数都熟悉,就是计算机中由操作系统管理的具有名字的存储区域。文件是Python中的一个非常重要概念,与我们平时接触的计算机文件一样,Python中的文件包括txt、office、pdf等内容。

文件概念文件是指存储在外部介质中的数据集合。文件既可以保存大量数据,又可以永久保存数据。文件是数据的集合。文件主要分为两个类型:文本文件和二进制文件。文本文件由单一特定编码的字符组成,如UTF-8编码,本质上可以将文本文件看作是存储在磁盘上的长字符串。大部分文本文件都可以通过文本编辑软件或文字处理软件创建、修改和阅读。二进制文件直接由0、1组成,文件内部的数据组织格式与文件用途有关,例如png格式的图片文件、avi格式的视频文件。二进制文件与文本文件最主要的区别在于是否有统一的字符编码。

文件打开Python中文件的使用与其他语言一样,也是打开→读写→关闭,关闭的目的是为保证文件中数据的安全。open()函数用于打开文件,该函数调用成功会返回一个文件对象(文件句柄)。open(file,mode='r',encoding=None)这里:file:表示待打开文件的文件名。mode:表示文件的打开模式。

encoding:表示文件的编码格式。

文件打开常用的文件打开模式有r、w、a、b、+,这些模式的含义分别如下:文件打开模式含义r以只读的方式打开文件,默认值。w以只写的方式打开文件。a以追加的方式打开文件。b以二进制方式打开文件。+以更新的方式打开文件。

文件关闭close()方法用于关闭文件,该方法没有参数,直接调用即可。文件对象.close()譬如:f1.close()f2.close()

文件读文件对象.read([size])参数size表示设置的读取数据的字节数,若该参数缺省,则一次读取指定文件中的所有数据。read()方法可以从指定文件中读取指定数据,其语法格式如下:譬如:f=open("端午节.txt",'r',encoding='utf-8‘)f.read(4)f.read(5)f.read()

文件写通过write()方法向文件中写入数据,其语法格式如下。文件对象.write(str)参数str表示要写入的字符串。若字符串写入成功,write()方法返回本次写入文件的长度。譬如:f=open(“abc.txt”,’w’)f.write(“Istudypython.”)任务实现—识别单词02

根据题意,身份证的查询功能是基于身份证码值实现的,这些码值都保存在“身份证码值对照表.txt”文件中,该文件的内容如下图所示。

任务分析从上表中数据可知,文件中的数据结构类似于包含多个键值对的字典,其中每个键值对的键为身份证的地址码,值为地址码对应的归属地。实现功能步骤如下:1.读取“身份证码值对照表.txt”文件中的数据,并将读取后的数据通过load()方法解码转换为Python中的字典2.将用户输入的内容作为键来获取字典中的值,从而实现通过地址码查询居民归属地的功能。

任务分析程序代码#查询身份证归属地importjsonf=open("身份证码值对照表.txt",'r',encoding='utf-8')content=f.read()content_dict=json.loads(content)#转换为字典类型address=input('请输入身份证前6位(地址码):')forkey,valincontent_dict.items():ifkey==address:print(val)f.close()

程序总结上述代码中,首先导入将字符串转换为字典功能的模块json,然后打开“身份证码值对照表.txt”文件读取数据,并调用loads()方法将字符串类型的数据转换为字典。最后接收用户输入的身份证前6位数字,即地址码,将其与字典中的键逐个对比,若相等则获取字典中该键对应的值,否则忽略不计,结束前关闭打开的文件。任务总结文件是指存储在外部介质中的数据集合。文件既可以保存大量数据,又可以永久保存数据。文件是数据的集合。Python是通过内置的open()函数打开一个文件,并实现该文件与一个程序变量的关联。close()方法用于关闭文件,该方法没有参数,直接调用即可。read()方法可以从指定文件中读取指定数据,write()方法可以向文件中写入数据。谢谢观看格式数据-输出杨辉三角形任务描述杨辉三角形,又称贾宪三角形、帕斯卡三角形,是二项式系数在三角形中的一种几何排列。下图为杨辉三角的前7行,由于位于杨辉三角形两个腰上的数都为1,其他位置上的数等于它肩上两个数之和,基于杨辉三角形的这个特点,本任务拟采用二维数组输出杨辉三角形。数据格式化01

从广义上讲,维度是与事物“有联系”的概念的数量,根据“有联系”的概念的数量,事物可分为不同维度。譬如:与线有联系的概念为长度,因此线为一维事物;与长方形面积有关的概念为长度和宽度,因此面积为二维事物;与长方体体积有联系的概念为长度、宽度和高度,因此体积为三维事物。

数据维度

数据维度即事物“有联系”的概念的数量,它可分为多种不同维度。譬如:一维、二维、三维、四维、五维……根据组织数据时与数据有联系的参数的数量,数据可分为一维数据、二维数据和多维数据。一维数据:具有对等关系的一组线性数据,如:一维列表、一维元组、集合等。二维数据:二维数据关联参数的数量为2,这类数据对应到数学上就是矩阵和行列式,也即关系数据表,如:矩阵、二维数组、二维列表、二维元组等。多维数据在网络应用中非常常见,计算机中常见的多维数据格式有HTML、JSON等。如上节课的身份证码值对照表就是典型的JSON格式。

数据存储程序中与数据相关的操作分为数据的存储与读写。数据通常存储在文件中,为了方便后续的读写操作,数据通常需要按照约定的组织方式进行存储。一维数据呈线性排列,一般用特殊字符分隔,譬如:空格、逗号、&等。二维数据可视为多条一维数据的集合,当二维数据只有一个元素时,这个二维数据就是一维数据。CSV是国际上通用的一维数据和二维数据存储格式。CSV广泛应用于不同体系结构下网络应用程序之间表格信息的交换中,它本身没有明确的格式标准,具体标准一般由传输双方协商决定。

数据读取与写入Windows平台中CSV文件的后缀名为.csv,可通过OfficeExcel或记事本打开。Python在程序中读取.csv文件后会以二维列表形式存储其中内容。

将一维数据和二维数据写入文件中,即按照数据的组织形式,在文件中添加新的数。

数据格式化为了直观地表示多维数据,方便组织和操作多维数据,多维数据将统一采用键值对的形式进行格式化。在网络平台上传递的数据大多是多维数据,常见的数据格式就是JSON格式,它是一种轻量级的数据交换格式,本质上是一种被格式化的字符串,易于阅读和编写,以及机器解析和生成。JSON以对象的形式表示数据。

JSON格式JSON格式的数据一般遵循以下语法规则:数据存储在键值对(key:value)中;譬如:例如“姓名”:“张一山”。数据的字段由逗号分隔;譬如:“姓名”:“张一山”,“语文”:124。一个大括号保存一个JSON对象;譬如:{“姓名”:“张一山”,“语文”:“124”}。一个中括号保存一个数组;譬如:[{“姓名”:“张一山”,“语文”:“124”}]。

JSON模块利用json模块的dumps()函数和loads()函数可以实现Python对象和JSON数据之间的转换,其功能如下表所示。函数功能dumps()对Python对象进行转码,将其转化为JSON字符串loads()将JSON字符串解析为Python对象Python对象与JSON数据转化时的类型对照如下表所示。Python对象JSON数据dictobjectlist,tuplearraystr,unicodestringint,long,floatnumberTruetrueFalsefalseNonenull任务实现—输出杨辉三角形02

根据题意,先定义二维数组a[N][N],N为常量,大于要打印的行数n。再将每行的第一个数和最后一个数赋值为1,即a[i][1]=a[i][i]=1。除了每行的第一个数和最后一个数外,每行上的其他数都为其肩上的两数之和,即a[i][j]=a[i-1][j-1]+a[i-1][j]。

任务分析程序代码#输出杨辉三角形n=0a=[([0]*10)foriinrange(10)]#定义一个10×10的二维数组whilen<=0orn>10:#控制打印的行数n=int(input('请输入杨辉三角行数:'))print('打印%d行杨辉三角如下:'%n)#计算杨辉三角的数值并存入数组a中forrowinrange(1,n+1):a[row][1]=a[row][row]=1#每行两边的数为1forrowinrange(3,n+1):forcolinrange(2,(row-1)+1):#计算其他位置的值并存入二维数组a[row][col]=a[row-1][col-1]+a[row-1][col]#打印杨辉三角forrowinrange(1,n+1):forkinrange(1,(n-row)+1):print('',end='')#每行输出前先打印两个空格forcolinrange(1,row+1):print('%4d'%(a[row][col]),end='')print()

程序总结上述代码中,定义row和col两个变量分别表示杨辉三

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论