Python电子教案3-2基本数据类型

上传人:夏** 文档编号:570886942 上传时间:2024-08-07 格式:PPT 页数:59 大小:404KB
返回 下载 相关 举报
Python电子教案3-2基本数据类型_第1页
第1页 / 共59页
Python电子教案3-2基本数据类型_第2页
第2页 / 共59页
Python电子教案3-2基本数据类型_第3页
第3页 / 共59页
Python电子教案3-2基本数据类型_第4页
第4页 / 共59页
Python电子教案3-2基本数据类型_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《Python电子教案3-2基本数据类型》由会员分享,可在线阅读,更多相关《Python电子教案3-2基本数据类型(59页珍藏版)》请在金锄头文库上搜索。

1、第3章 基本数据类型 字符串类型及其操作字符串是字符的序列表示,可以由一对单引号()、双引号()或三引号()构成,其中,单引号和双引号都可以表示单行字符串,两者作用相同。使用单引号时,双引号可以作为字符串的一部分;使用双引号时,单引号可以作为字符串的一部分。三引号可以表示单行或者多行字符串。三种表示方式如下字符串类型单引号字符串: 单引号表示,可以使用双引号作为字符串的一部分双引号字符串: 双引号表示,可以使用单引号作为字符串的一部分三引号字符串: 三引号表示可以使用双引号字符串类型打印字符串的Python运行结果如下,注意其中的引号部分:字符串类型input()函数将用户输入的内容当作一个字

2、符串类型,这是获得用户输入的常用方式。print()函数可以直接打印字符串,这是输出字符串的常用方式。如下例子展示了如何用变量name来存储用户的名字,再输出这个变量的内容:字符串类型第节已经介绍,字符串包括两种序号体系:正向递增序号和反向递减序号。如果字符串长度为L,正向递增需要以最左侧字符序号为0,向右依次递增,最右侧字符序号为L-1;反向递减序号以最右侧字符序号为-1,向左依次递减,最左侧字符序号为-L。这两种索引字符的方法可以在一个表示中使用。字符串类型Python字符串也提供区间访问方式,采用N: M格式,表示字符串中从N到M(不包含M)的子字符串,其中,N和M为字符串的索引序号,可

3、以混合使用正向递增序号和反向递减序号。如果表示中M或者N索引缺失,则表示字符串把开始或结束索引值设为默认值。字符串类型字符串以Unicode编码存储,因此,字符串的英文字符和中文字符都算作1个字符。观察下面实例:字符串类型反斜杠字符()是一个特殊字符,在字符串中表示“转义”,即该字符与后面相邻的一个字符共同组成了新的含义。例如:n表示换行、表示反斜、表示单引号、”表示双引号、t表示制表符(TAB)等。例如:字符串类型Python提供了5个字符串的基本操作符,如表所示。基本的字符串操作符与操作符有关的实例如下:字符串使用实例程序读入一个表示星期几的数字(1-7),输出对应的星期字符串名称 例如:

4、输入3,返回“星期三”。代码如下:运行结果如下:请输入星期数字(1-7): 3 星期三微实例:获取星期字符串微实例通过在字符串中截取适当的子串来实现星期名称的查找。问题的关键在于找出子串的剪切位置。因为每个星期日期的缩写都由3个字符组成,如果知道星期日期字符串的起始位置,就能很容易获得缩写子串。通过下面语句,可以获得从起始位置pos开始且长度为3的子串:weekAbbrev = weekstrpos: pos+3字符串使用实例使用字符串作为查找表的缺点是,所剪切的子字符串长度必须相同。如果各缩写表示长度不同,还需要其他语句辅助例如,请读者思考,该如何实现一个“获取月份字符串”呢?要求根据1-1

5、2的数字返回月份名称。字符串使用实例字符串中可以增加特殊的格式化控制字符,用来输出特殊效果。特殊的格式化控制字符使用反斜杠()开头,常用控制字符如下:a: 蜂鸣,响铃 b:回退,向后退一格f:换页 n:换行,光标移动到下行首行t:水平制表 r:回车,光标移动到本行首行v:垂直制表 0:NULL,什么都不做特殊的格式化控制字符Python解释器提供了一些内置函数,详细请参考节。其中,有6个函数与字符串处理相关,如表所示。内置的字符串处理函数len(x)返回字符串x的长度,Python 3以Unicode字符为计数基础,因此,字符串中英文字符和中文字符都是1个长度单位str(x)返回x的字符串形式

6、,其中,x可以是数字类型或其他类型内置的字符串处理函数每个字符在计算机中可以表示为一个数字,字符串则以数字序列的方式存储在计算机中。目前,计算机系统使用的一个重要编码是ASCII编码,该编码用数字0-127表示计算机键盘上常见的字符以及一些被称为控制代码的特殊值。例如,大写字母A-Z用65-90表示,小写字母a-z用97-122表示。内置的字符串处理函数chr(x)和ord(x)函数用于在单字符和Unicode编码值之间进行转换。chr(x)函数返回Unicode编码对应的字符,其中,Unicode编码x的取值范围是0到1,114,111(即十六进制数0x10FFFF)。ord(x)函数返回单

7、字符x对应的Unicode编码。如下:内置的字符串处理函数设想在某些情况下给朋友传递字条信息,但又不希望传递中途被第三方看懂这些信息,因此需要对字条信息进行加密处理。传统加密算法很多,这里介绍一种非常简单的加密算法凯撒密码。顾名思义,凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为该字符后面第三个字符,对应关系如下:原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C微实例:恺

8、撒密码假设用户可能使用的信息仅包括小写字母a-z,则该微实例对应的加密代码如下:微实例:恺撒密码原文字符P,其密文字符C满足如下条件:C = ( P + 3 ) mod 26解密方法反之,满足:P = ( C 3 ) mod 26微实例:恺撒密码假设用户可能使用的信息仅包括小写字母a-z,则该微实例对应的加密代码如下:微实例:恺撒密码微实例运行结果如下:微实例:恺撒密码在Python解释器内部,所有数据类型都采用面向对象方式实现,封装为一个类。字符串也是一个类,它具有类似.b()形式的字符串处理函数。在面向对象字典里,这类函数被称为“方法”。字符串类型共包含43个内置方法。鉴于部分内置方法并不

9、常用,限于篇幅,这里仅介绍15个常用的内置方法,如表所示。内置的字符串处理方法内置的字符串处理方法内置的字符串处理方法str.split(sep=None, maxsplit=-1)方法返回一个列表,列表是一种存储多个数据的数据类型,第节将详细介绍,其中,分割str的标识符是sep,默认分隔符为空格。如果给出maxsplit参数,则只分割前maxsplit个字符,默认maxsplit参数可以不给出。str.center(width, fillchar)方法返回长度为width的字符串,其中,str处于新字符串中心位置,两侧新增字符采用fillchar填充,当width小于字符串长度时,返回st

10、r。内置的字符串处理方法str.zfill(width)方法返回长度为width的字符串,如果字符串长度不足width时,在左侧添加字符“0”,但如果str最左侧是字符“+“或者”-”,则从第二个字符左侧添加“0”,当width小于字符串长度时,返回str内置的字符串处理方法字符串类型的格式化为什么会有字符串类型的格式化问题呢?例如,一个程序希望输出如下内容:“2016-12-31: 计算机PYTHON的CPU占用率为10%。”其中,下划线内容可能会变化,需要由特定函数运算结果进行填充,最终形成上述格式字符串作为输出结果。字符串格式化用于解决字符串和变量同时输出时的格式安排。format()方

11、法的基本使用字符串format()方法的基本使用格式是:.format()由一系列的槽组成,用来控制修改字符串中嵌入值出现的位置,其基本思想是将format()方法的中的参数按照序号关系替换到的槽中。槽用大括号()表示,如果大括号中没有序号,则按照出现顺序替换format()方法的基本使用如图所示。如果大括号中指定了使用参数的序号,按照序号对应参数替换,如图所示。调用format()方法后会返回一个新的字符串,参数从0开始编号。format()方法的基本使用format()方法的基本使用format()方法可以非常方便地连接不同类型的变量或内容,如果需要输出大括号,采用表示,表示,例如:for

12、mat()方法的基本使用format()方法中的槽除了包括参数序号,还可以包括格式控制信息。此时,槽的内部样式如下:: 其中,用来控制参数显示时的格式,格式内容如图所示。format()方法的格式控制format()方法的格式控制包括:,6个字段,这些字段都是可选的,可以组合使用,这里按照使用方式逐一介绍、和是3个相关字段。指当前槽的设定输出字符宽度,如果该槽对应的format()参数长度比设定值大,则使用参数实际长度。如果该值的实际位数小于指定宽度,则位数将被默认以空格字符补充。format()方法的格式控制指参数在内输出时的对齐方式,分别使用和三个符号表示左对齐、右对齐和居中对齐。指内除了

13、参数外的字符采用什么方式表示,默认采用空格,可以通过更换。format()方法的格式控制format()方法的格式控制表示两个含义,由小数点(.)开头。对于浮点数,精度表示小数部分输出的有效位数。对于字符串,精度表示输出的最大长度format()方法的格式控制表示输出整数和浮点数类型的格式规则。b: 输出整数的二进制方式;c: 输出整数对应的Unicode字符;d: 输出整数的十进制方式;o: 输出整数的八进制方式;x: 输出整数的小写十六进制方式;X: 输出整数的大写十六进制方式;format()方法的格式控制对于浮点数类型,输出格式包括4种:e: 输出浮点数对应的小写字母e的指数形式;E:

14、 输出浮点数对应的大写字母E的指数形式;f: 输出浮点数的标准浮点形式;%: 输出浮点数的百分形式。浮点数输出时尽量使用表示小数部分的宽度,有助于更好控制输出格式。format()方法的格式控制文本进度条进度条是计算机处理任务或执行软件中增强用户体验的重要手段,它能够实时显示任务或软件的执行进度,十分常用。本节将利用Python字符串处理方法实现文本进度条功能。最简单的,利用print()函数实现简单的非刷新文本进度条。基本思想是按照任务执行百分比将整个任务划分为100个单位,每执行N%输出一次进度条。每一行输出包含进度百分比,代表已完成的部分(*)和未完成的部分(.)的两种字符,以及一个跟随

15、完成度前进的小箭头简单的开始%10 *-.简单的开始由于程序执行速度远超过人眼的视觉停留时间,直接进行字符输出几乎是瞬间完成,不利于观察。为了模拟任务处理的时间效果,调用Python标准时间库time,使用time.sleep(t)函数将当前程序暂时挂起t秒,t可以是小数。由此可以接近真实的模拟进度条效果输出。简单的开始默认情况下,print()函数在输出结尾处会自动产生一个n,即换行符,从而让光标自动移动到下一行行首,这样上一步输出依旧保存在界面上。采用for循环和print()函数构成程序的主体部分,输出百分比最高为3位数据,为了使输出显得整齐,可以使用:3.0f格式化百分比部分。这个简单

16、的文本进度条代码如下。变量scale表示输出进度条的精度,读者可以修改这个值观察效果。简单的开始简单的开始简单的开始常用的计算机系统中都有进度条,这些进度条一般只在一行中改变进度比例,与实例代码不同。简单说,这个不同在于原地输出和动态刷新,其基本思想是将每一次进度输出都固定在同一行,并不断地用新生成的字符串覆盖之前的输出,形成进度条不断刷新的动态效果。这种效果简称为“单行动态刷新”,可以通过print()函数实现。单行动态刷新采用print()函数的具体方法是:在print()函数中更换参数end的默认值为,即每次使用prin()函数输出时不换行。此时,系统输出指针还停留在上一次输出的行尾,下

17、一次输出在字符串前部增加转义符r,该转义符把输出指针移动到行首而不换行。动态刷新一个百分比的完整代码如下:带刷新的文本进度条单行动态刷新上述程序在IDLE中的执行效果如图,为什么输出没有单行刷新呢?这是因为IDLE本身屏蔽了单行刷新功能,如果希望获得刷新效果,请使用控制台的命令行执行程序。以Windows系统为例,启动命令行工具(Windows系统安装目录),选择到文件所在目录执行:单行动态刷新将前两小节的程序合并起来,再添上开始和结束提示语,就可以很好的实现带刷新的文本进度条。为了进一步提高用户体验,在文本进度条中增加进程运行时间的监控,这里采用time库中的time.clock()函数。t

18、ime.clock()函数一般多次出现,第一次调用时计时开始,同一程序中的第二次及后续调用时返回与第一次计时之间的时间差,单位为秒。该函数主要用来统计程序运行时间,增加用户体验。文本进度条完整代码如下。带刷新的文本进度条带刷新的文本进度条五花八门的进度条设计函数从本章开始进入Python语言的深入介绍。首先介绍了计算机中常用的数字类型及操作,包括Python内置的数值运算操作和数字类型转换,进一步介绍了常用的数学计算标准库math库。采用数学计算将模糊的好好学习,天天向上数据化,展示了持续性学习的强大力量。本章同时介绍了字符串类型及其操作和格式化方法,并通过字符串格式化实现控制台风格的文本进度条。本章小结

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号