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

上传人:sh****n 文档编号:7457732 上传时间:2020-03-21 格式:PPT 页数:59 大小:929.50KB
返回 下载 相关 举报
Python电子教案3-2基本数据类型.ppt_第1页
第1页 / 共59页
Python电子教案3-2基本数据类型.ppt_第2页
第2页 / 共59页
Python电子教案3-2基本数据类型.ppt_第3页
第3页 / 共59页
点击查看更多>>
资源描述
第3章基本数据类型 字符串类型及其操作 字符串是字符的序列表示 可以由一对单引号 双引号 或三引号 构成 其中 单引号和双引号都可以表示单行字符串 两者作用相同 使用单引号时 双引号可以作为字符串的一部分 使用双引号时 单引号可以作为字符串的一部分 三引号可以表示单行或者多行字符串 三种表示方式如下 字符串类型 单引号字符串 单引号表示 可以使用 双引号 作为字符串的一部分 双引号字符串 双引号表示 可以使用 单引号 作为字符串的一部分 三引号字符串 三引号表示可以使用 双引号 字符串类型 打印字符串的Python运行结果如下 注意其中的引号部分 字符串类型 input 函数将用户输入的内容当作一个字符串类型 这是获得用户输入的常用方式 print 函数可以直接打印字符串 这是输出字符串的常用方式 如下例子展示了如何用变量name来存储用户的名字 再输出这个变量的内容 字符串类型 第2 2 4节已经介绍 字符串包括两种序号体系 正向递增序号和反向递减序号 如果字符串长度为L 正向递增需要以最左侧字符序号为0 向右依次递增 最右侧字符序号为L 1 反向递减序号以最右侧字符序号为 1 向左依次递减 最左侧字符序号为 L 这两种索引字符的方法可以在一个表示中使用 字符串类型 Python字符串也提供区间访问方式 采用 N M 格式 表示字符串中从N到M 不包含M 的子字符串 其中 N和M为字符串的索引序号 可以混合使用正向递增序号和反向递减序号 如果表示中M或者N索引缺失 则表示字符串把开始或结束索引值设为默认值 字符串类型 字符串以Unicode编码存储 因此 字符串的英文字符和中文字符都算作1个字符 观察下面实例 字符串类型 反斜杠字符 是一个特殊字符 在字符串中表示 转义 即该字符与后面相邻的一个字符共同组成了新的含义 例如 n表示换行 表示反斜 表示单引号 表示双引号 t表示制表符 TAB 等 例如 字符串类型 Python提供了5个字符串的基本操作符 如表3 10所示 基本的字符串操作符 与操作符有关的实例如下 字符串使用实例 程序读入一个表示星期几的数字 1 7 输出对应的星期字符串名称例如 输入3 返回 星期三 代码如下 运行结果如下 请输入星期数字 1 7 3星期三 微实例3 1 获取星期字符串 微实例3 1通过在字符串中截取适当的子串来实现星期名称的查找 问题的关键在于找出子串的剪切位置 因为每个星期日期的缩写都由3个字符组成 如果知道星期日期字符串的起始位置 就能很容易获得缩写子串 通过下面语句 可以获得从起始位置pos开始且长度为3的子串 weekAbbrev weekstr pos pos 3 字符串使用实例 使用字符串作为查找表的缺点是 所剪切的子字符串长度必须相同 如果各缩写表示长度不同 还需要其他语句辅助例如 请读者思考 该如何实现一个 获取月份字符串 呢 要求根据1 12的数字返回月份名称 字符串使用实例 字符串中可以增加特殊的格式化控制字符 用来输出特殊效果 特殊的格式化控制字符使用反斜杠 开头 常用控制字符如下 a 蜂鸣 响铃 b 回退 向后退一格 f 换页 n 换行 光标移动到下行首行 t 水平制表 r 回车 光标移动到本行首行 v 垂直制表 0 NULL 什么都不做 特殊的格式化控制字符 Python解释器提供了一些内置函数 详细请参考5 8节 其中 有6个函数与字符串处理相关 如表3 11所示 内置的字符串处理函数 len x 返回字符串x的长度 Python3以Unicode字符为计数基础 因此 字符串中英文字符和中文字符都是1个长度单位str x 返回x的字符串形式 其中 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 即十六进制数0 x10FFFF ord x 函数返回单字符x对应的Unicode编码 如下 内置的字符串处理函数 设想在某些情况下给朋友传递字条信息 但又不希望传递中途被第三方看懂这些信息 因此需要对字条信息进行加密处理 传统加密算法很多 这里介绍一种非常简单的加密算法 凯撒密码 顾名思义 凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法 它采用了替换方法对信息中的每一个英文字符循环替换为该字符后面第三个字符 对应关系如下 原文 ABCDEFGHIJKLMNOPQRSTUVWXYZ密文 DEFGHIJKLMNOPQRSTUVWXYZABC 微实例3 2 恺撒密码 假设用户可能使用的信息仅包括小写字母a z 则该微实例对应的加密代码如下 微实例3 2 恺撒密码 原文字符P 其密文字符C满足如下条件 C P 3 mod26解密方法反之 满足 P C 3 mod26 微实例3 2 恺撒密码 假设用户可能使用的信息仅包括小写字母a z 则该微实例对应的加密代码如下 微实例3 2 恺撒密码 微实例运行结果如下 微实例3 2 恺撒密码 在Python解释器内部 所有数据类型都采用面向对象方式实现 封装为一个类 字符串也是一个类 它具有类似 b 形式的字符串处理函数 在面向对象字典里 这类函数被称为 方法 字符串类型共包含43个内置方法 鉴于部分内置方法并不常用 限于篇幅 这里仅介绍15个常用的内置方法 如表3 12所示 内置的字符串处理方法 内置的字符串处理方法 内置的字符串处理方法 str split sep None maxsplit 1 方法返回一个列表 列表是一种存储多个数据的数据类型 第6 2节将详细介绍 其中 分割str的标识符是sep 默认分隔符为空格 如果给出maxsplit参数 则只分割前maxsplit个字符 默认maxsplit参数可以不给出 str center width fillchar 方法返回长度为width的字符串 其中 str处于新字符串中心位置 两侧新增字符采用fillchar填充 当width小于字符串长度时 返回str 内置的字符串处理方法 str zfill width 方法返回长度为width的字符串 如果字符串长度不足width时 在左侧添加字符 0 但如果str最左侧是字符 或者 则从第二个字符左侧添加 0 当width小于字符串长度时 返回str 内置的字符串处理方法 字符串类型的格式化 为什么会有字符串类型的格式化问题呢 例如 一个程序希望输出如下内容 2016 12 31 计算机PYTHON的CPU占用率为10 其中 下划线内容可能会变化 需要由特定函数运算结果进行填充 最终形成上述格式字符串作为输出结果 字符串格式化用于解决字符串和变量同时输出时的格式安排 format 方法的基本使用 字符串format 方法的基本使用格式是 format 由一系列的槽组成 用来控制修改字符串中嵌入值出现的位置 其基本思想是将format 方法的中的参数按照序号关系替换到的槽中 槽用大括号 表示 如果大括号中没有序号 则按照出现顺序替换 format 方法的基本使用 如图3 2所示 如果大括号中指定了使用参数的序号 按照序号对应参数替换 如图3 3所示 调用format 方法后会返回一个新的字符串 参数从0开始编号 format 方法的基本使用 format 方法的基本使用 format 方法可以非常方便地连接不同类型的变量或内容 如果需要输出大括号 采用 表示 表示 例如 format 方法的基本使用 format 方法中的槽除了包括参数序号 还可以包括格式控制信息 此时 槽的内部样式如下 其中 用来控制参数显示时的格式 格式内容如图3 4所示 format 方法的格式控制 format 方法的格式控制 包括 6个字段 这些字段都是可选的 可以组合使用 这里按照使用方式逐一介绍 和是3个相关字段 指当前槽的设定输出字符宽度 如果该槽对应的format 参数长度比设定值大 则使用参数实际长度 如果该值的实际位数小于指定宽度 则位数将被默认以空格字符补充 format 方法的格式控制 指参数在内输出时的对齐方式 分别使用和 三个符号表示左对齐 右对齐和居中对齐 指内除了参数外的字符采用什么方式表示 默认采用空格 可以通过更换 format 方法的格式控制 format 方法的格式控制 表示两个含义 由小数点 开头 对于浮点数 精度表示小数部分输出的有效位数 对于字符串 精度表示输出的最大长度 format 方法的格式控制 表示输出整数和浮点数类型的格式规则 b 输出整数的二进制方式 c 输出整数对应的Unicode字符 d 输出整数的十进制方式 o 输出整数的八进制方式 x 输出整数的小写十六进制方式 X 输出整数的大写十六进制方式 format 方法的格式控制 对于浮点数类型 输出格式包括4种 e 输出浮点数对应的小写字母e的指数形式 E 输出浮点数对应的大写字母E的指数形式 f 输出浮点数的标准浮点形式 输出浮点数的百分形式 浮点数输出时尽量使用表示小数部分的宽度 有助于更好控制输出格式 format 方法的格式控制 文本进度条 进度条是计算机处理任务或执行软件中增强用户体验的重要手段 它能够实时显示任务或软件的执行进度 十分常用 本节将利用Python字符串处理方法实现文本进度条功能 最简单的 利用print 函数实现简单的非刷新文本进度条 基本思想是按照任务执行百分比将整个任务划分为100个单位 每执行N 输出一次进度条 每一行输出包含进度百分比 代表已完成的部分 和未完成的部分 的两种字符 以及一个跟随完成度前进的小箭头 简单的开始 10 简单的开始 由于程序执行速度远超过人眼的视觉停留时间 直接进行字符输出几乎是瞬间完成 不利于观察 为了模拟任务处理的时间效果 调用Python标准时间库time 使用time sleep t 函数将当前程序暂时挂起t秒 t可以是小数 由此可以接近真实的模拟进度条效果输出 简单的开始 默认情况下 print 函数在输出结尾处会自动产生一个 n 即换行符 从而让光标自动移动到下一行行首 这样上一步输出依旧保存在界面上 采用for循环和print 函数构成程序的主体部分 输出百分比最高为3位数据 为了使输出显得整齐 可以使用 3 0f 格式化百分比部分 这个简单的文本进度条代码如下 变量scale表示输出进度条的精度 读者可以修改这个值观察效果 简单的开始 简单的开始 简单的开始 常用的计算机系统中都有进度条 这些进度条一般只在一行中改变进度比例 与实例代码4 1不同 简单说 这个不同在于原地输出和动态刷新 其基本思想是将每一次进度输出都固定在同一行 并不断地用新生成的字符串覆盖之前的输出 形成进度条不断刷新的动态效果 这种效果简称为 单行动态刷新 可以通过print 函数实现 单行动态刷新 采用print 函数的具体方法是 在print 函数中更换参数end的默认值为 即每次使用prin 函数输出时不换行 此时 系统输出指针还停留在上一次输出的行尾 下一次输出在字符串前部增加转义符 r 该转义符把输出指针移动到行首而不换行 动态刷新一个百分比的完整代码如下 带刷新的文本进度条 单行动态刷新 上述程序在IDLE中的执行效果如图 为什么输出没有单行刷新呢 这是因为IDLE本身屏蔽了单行刷新功能 如果希望获得刷新效果 请使用控制台的命令行执行e4 2TextProgressBar py程序 以Windows系统为例 启动命令行工具 system32 cmd exe 选择到e4 2TextProgressBar py文件所在目录执行 pythone4 2TextProgressBar py 单行动态刷新 将前两小节的程序合并起来 再添上开始和结束提示语 就可以很好的实现带刷新的文本进度条 为了进一步提高用户体验 在文本进度条中增加进程运行时间的监控 这里采用time库中的time clock 函数 time clock 函数一般多次出现 第一次调用时计时开始 同一程序中的第二次及后续调用时返回与第一次计时之间的时间差 单位为秒 该函数主要用来统计程序运行时间 增加用户体验 文本进度条完整代码如下 带刷新的文本进度条 带刷新的文本进度条 五花八门的进度条设计函数 从本章开始进入Python语言的深入介绍 首先介绍了计算机中常用的数字类型及操作 包括Python内置的数值运算操作和数字类型转换 进一步介绍了常用的数学计算标准库math库 采用数学计算将模糊的 好好学习 天天向上 数据化 展示了持续性学习的强大力量 本章同时介绍了字符串类型及其操作和格式化方法 并通过字符串格式化实现控制台风格的文本进度条 本章小结
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!