数据类型自定义函数.ppt

上传人:xt****7 文档编号:20883011 上传时间:2021-04-20 格式:PPT 页数:21 大小:1.23MB
收藏 版权申诉 举报 下载
数据类型自定义函数.ppt_第1页
第1页 / 共21页
数据类型自定义函数.ppt_第2页
第2页 / 共21页
数据类型自定义函数.ppt_第3页
第3页 / 共21页
资源描述:

《数据类型自定义函数.ppt》由会员分享,可在线阅读,更多相关《数据类型自定义函数.ppt(21页珍藏版)》请在装配图网上搜索。

1、常 用 运 算 、 使 用 自 定 义 函 数 在 这 章 读 者 们 将 实 践 函 数 的 用 法 , 包 括 定 义 , 使 用 , 引 用 等 等 , 本 书 的 特 点是 “ 实 用 ” , 所 以 这 章 特 别 说 明 了 使 用 外 部 文 件 配 置 函 数 , 这 是 一 种 在 开 发中 特 别 有 用 技 术 。 本 章 所 涉 及 的 技 术 要 点 包 括 : 1) 函 数 要 先 定 义 再 使 用 2) Python的 缩 进 格 式 3) 形 参 、 实 参 、 返 回 值 4) 局 部 变 量 与 全 局 变 量 5) 常 用 运 算 6) 利 用 impo

2、rt导 入 机 制 7) Python的 格 式 化 输 出 开 门 见 山 , 看 下 面 的 例 程 。 案 例 2-1:用 函 数 的 方 法 计 算 三 角 形 面 积 案 例 2-1导 读 无 论 已 经 提 到 多 少 遍 都 要 再 次 强 调 的 是 : python是“先 定 义 再 使 用 ”的 语 言 。所 以 函 数 在 使 用 之 前 也 需 要 定 义 。 于 是 , 上 面 的 程 序 , 把 6-8行 的 函 数 定 义 放 到 19行 之 后 就 会 有 错 误案例第6行 , 用 def关 键 字 定 义 了 一 个 函 数 , 名 字 叫 calcu_tri

3、, 这 种 形 式 就是 函 数 的 定 义 , calcu_tri函 数 的 参 数 是 x和 y, 然 后 使 用 缩 进 的 方 法 标 志 函 数的 范 围 , calcu_tri函 数 只 有 两 条 语 句 , 这 两 条 语 句 的 缩 进 ( 句 首 空 格 数 ) 相同 , 而 从 第 11行 开 始 就 不 是 calcu_tri函 数 的 范 围 了 。 Python利 用 排 版 的 缩进 格 式 表 达 语 句 的 归 属 范 围 , 第 7, 8行 的 缩 进 格 式 表 明 , 这 两 句 话 隶 属 于 第6行 定 义 的 函 数 。 def 函 数 定 义x,

4、y 参 数 函 数 体 案 例 2-1导 读 第 7行 calcu_tri函 数 的 功 能 , 首 先 通 过 打 印 信 息 提 示 一 下 程 序 现 在 运 行 的 位置 第 8行 return也 是 一 个 Python语 法 关 键 字 , 顾 名 思 义 , 函 数 将 在 此 返 回 ( 到调 用 位 置 ) , 并 带 回 一 个 值 , 即 : 1.0*x*y/2.0。 也 就 是 说 calcu_tri函 数 传入 参 数 x, y; 并 返 回 按 公 式 1.0*x*y/2.0计 算 所 得 到 的 值 。 第 11行 取 消 了 函 数 calcu_tr的 缩 进

5、, 表 示 回 到 程 序 主 框 架 的 范 畴 , 到 15,16行 , 输 入 了 a和 h。 案 例 2-1导 读 第 17行 , 像 数 学 中 调 用 函 数 一 样 , 程 序 将 a, h当 作 参 数 调 用 了 calcu_tri函数 , 然 后 程 序 加 载 calcu_tri函 数 并 运 行 , 直 至 运 行 到 calcu_tri函 数 的 return语 句 , 在 回 到 函 数 被 调 用 的 位 置 ,可以看到第17行 利 用 一 个 赋 值 将calcu_tri函 数 的 值 给 了 area然 后 在 第 18行 打 印 。 另外 Python也 支

6、 持 格 式 化 输 出 : 第 19行可以改成print “area is ”+ :d.format(area) 案 例 2-1导 读 这 里 先 提 一 下 格 式 化 输 出 , Python的格式化 输 出 十 分 有 特 点 , 需 要 一 段 时间 才 能 讲 清 楚 , 现 在 我 们 用 不 到 很 复 杂 的 方 式 , 暂 时 知 道 输 出 整 型 数 用 :d.format(整 型 数 ), 就 行 了 , 不 用 细 究 。 在 真 实 的 应 用 中 , 形 如 案 例 2-1的 函 数 使 用 方 式 没 什 么 实 际 用 途 , 最 大 的不 方 便 就 是

7、函 数 不 能 作 为 一 个 “工具包”被 其 他 程 序 利 用 ( 即 复 用 ) 。 所 以 把函 数 打 包 十 分 重 要 , 请 看 案 例 2-2。 案 例 2-2:开 发 一 个 求 三 角 形 面 积 的 工 具 包 案 例 2-2:开 发 一 个 求 三 角 形 面 积 的 工 具 包 案例2-2 示 范 了 如 何 使 用 外 部 文 件 的 资 源 , 这 样 所 有 函 数 都 可 以 被 新 程 序 复用 了 。 本 案 例 包 括 两 个 文 件 , 一 个 叫 python02_m.py, 程 序 将 调 用calcu_tri函 数 , 但 是 这 个 函 数

8、 在 l另 一 个 文 件 python02_s.py中 。 于 是 在python02_m.py的第6行 :from python02_s import * 这 句 话 说 “从 python02_s 中 引 入 所 有 函 数 ”, 于 是 , 在 python02_m.py中可以使用calcu_tri函 数 了 。 注 意 , 使 用 from引 用 文 件 模 块 的 时 候 不 要 有 文 件 名 的 后 缀 “.py” 案 例 2-2:开 发 一 个 求 三 角 形 面 积 的 工 具 包 为 什 么 要 分 成 两 个 文 件 呢 呢 , 这 样 就 可 以 方 便 地 进 行

9、工 具 包 ( 函 数 库 ) 的复 用 了 , 比 如 开 发 人 员 完 成 了 求 各 种 图 形 面 积 的 函 数 , 那 么 求 图 2-1中 的 图形 阴 影 部 分 面 积 时 ,只要把包 含 简 单 图 形 求 面 积 的 函 数 文 件 导 入 ( import) 进 来 , 然 后 把 各 种 函 数 组 合 一 下 , 就 完 成 了 开 发 任 务 , 这 种 开 发 就 简 单 多 了 ,所 以 尽 量 使 用 多 文 件 机 制 定 义 函 数 , 否 则 函 数 的 功 效 将 大 打 折 扣 。 知 识 梳 理 与 扩 展 函 数 的 定 义 和 调 用 函

10、数 在 调 用 前 必 须 定 义 , 比 如 在 函 数 A中 调 用 函 数 B, 被 调 用 的 函 数 叫 “ 被 调 函数 ” , 例 如 上 面 提 到 的 函 数 B, 那 么 函 数 A就 是 主 调 函 数 , 函 数 被 调 用 时 使 用 到的 参 数 叫 “实 参 ”( 实 际 参 数 ) , 而 函 数 定 义 时 使 用 的 参 数 叫 形 参 ( 形 式 参 数 ) 。例 如 上 面 的 示 例 , calcu_tri函 数 按 参 数 排 列 顺 序 接 收 a, h的值到x, y中 , x, y属 于 calcu_tri函 数 定 义 时 使 用 的 参 数

11、被 称 为 “形 参 ”, 而 a, h被 称 为 实 参 。calcu_tri函 数 中 return后 面 的 叫 “返 回 值 ”。 之 所 以 出 现 实 参 、 形 参 、 返 回 值 的 说法 对 编 程 来 说 没 什 么 意 义 , 只是教 学 和 交 流 时 指 代 比 较 明 确 。 知 识 梳 理 与 扩 展 函 数 的 定 义 和 调 用 在 Python中 形 参 和 实 参 之 间 采 用 之 传 递 的 机 制 , 形 参 的 变 化 不 会 改 变 实 参 。 例如 : 运 行 以 上 简 短 代 码 , 读 者 会 发 现 调 用 函 数 fun1前 后 k的

12、 值 并 没 有 发 生 变 化 。 知 识 梳 理 与 扩 展 缩 进 格 式 函 数 定 义 时 需 要 利 用 缩 进 格 式 , 所 谓 缩 进 是 指 在 代 码 行 开 始 部 分的空格。代 码 行开 头 的 前 导 空 白 用 于 确 定 语 句 的 分 组 , 同 样 的 缩 进 级 别 的 语 句 属 于 同 一 语 句 块 。 全 局 变 量 与 局 部 变 量 简 单 的 说 在 函 数 内 部 定 义 的 变 量 的 使 用 范 围 仅 限 于 函 数 内 部 , 被 称 为 局 部 变 量 ,而 不 属 于 任 何 函 数 的 变 量 就 是 全 局 变 量 , 但

13、是 想 要 形 象 地 理 解 全 局 变 量 和 局 部 变量 有 一 个 简 单 的 判 断 方 法 , 那 就 是 变 量 的 作 用 范 围 由 缩 进 格 式 标 志 的 代 码 块 确 定 ,在 一 个 代 码 块 声 明 的 变 量 仅 限 于 本 ( 级 ) 代 码 块 使 用 。 知 识 梳 理 与 扩 展 常 用 运 算 Python提 供 丰 富 的 计 算 功 能 , 其 中 算 术 运 算 有 : +( 加 ) , -( 减 ) , *( 乘 ) , /( 除 ) , %( 取 余 ) 。 他 们 的 运 算 规 则 与 常 规 算 术 运 算 一 样 , 若 要 提

14、 高 某 部 分表 达 式 的 运 算 优 先 级 则 在 该 部 分 表 达 式 外 面 使 用 “ ( ) ” , “ ( ) ” 的 使 用 可 以嵌 套 。 另 外 进 行 除 法 运 算 时 除 数 不 能 为 0, 计 算 机 语 言 中 的 计 算 与 日 常 计 算 不 同 ,需 要 注 意 数 据 的 类 型 , 例 如 两 个 整 型 数 据 进 行 除 法 运 算 。 简 洁 起 见 , 将 常 用 的 运 算 总 结 如 下 表 : 知 识 梳 理 与 扩 展 常 用 运 算 1、 括 号( ) , 括 号 内 的 数 据 优 先 处 理 , 括 号 可 以 嵌 套 使

15、 用 2、 算 术 运 算 符 知 识 梳 理 与 扩 展 常 用 运 算 3、 关 系 运 算 符 注 意 : Python的 关 系 运 算 和 逻 辑 运 算 中 用 布 尔 值 表 达 两 种 结 果 : True : 真 以 及False : 假 。 知 识 梳 理 与 扩 展 常 用 运 算 4、 逻 辑 运 算 符 5、 运 算 优 先 级 以 上 列 出 的 运 算 符 优 先 次 序 为 : 括 号 , 算 术 运 算 , 关 系 运 算 , 逻 辑 运 算 知 识 梳 理 与 扩 展 import模 块 导 入 机 制 利 用 import导 入 机 制 可 以 将 已 有

16、 的 函 数 功 能 模 块 导 入 程 序 。 这 个 机 制 方 便 代 码 复 用 ,要 注 意 引 用 功 能 模 块 的 文 件 时 不 需 要 后 缀 名 。 格 式 化 输 出 Python支 持 数 据 的 格 式 化 , 优 势 是 可 以 方 便 地 将 数 据 格 式 化 成 相 应 的 字 符 串 。 常 用 的格 式 化 功 能 如 下 : 1) 基 本 格 式 : STRING.format( 表 达 式 ), STRING表 达 字 符 串 2) 字 符 串 中 加 如 形 如 :nd 的 格 式 控 制 符 , 用 以 控 制 format中 表 达 式 的 输

17、 出 形 式 3) 常 用 格 式 控 制 符 有 : :nd 用 来 输 出 整 形 , n代 表 输 出 所 占 字 符 列 数 ; :m.nf用 来 输 出 浮 点 型 , m代 表 输 出 所 占 字 符 列 数 , n代 表 小 数 点 部 分 的 位 数 。 4) 若 指 定 输 出 的 字 符 列 数 大 于 实 际 输 出 , 则 输 出 空 格 占 位 ; 若 实 际 输 出 字 符 数 大 于 指定 , 则 按 实 际 输 出 。 小 节 对 一 个 开 发 人 员 而 言 , 代 码 复 用 意 味 着 工 作 经 验 的 积 累 , 函 数 为 开 发 人 员 提供 了

18、 这 种 机 制 。 开 发 人 员 可 以 把 一 些 常 用 的 功 能 抽 象 成 函 数 形 式 , 再 把 同 类的 多 个 函 数 ( 例 如 求 各 种 不 同 图 形 面 积 的 的 函 数 ) 打 包 成 一 个 文 件 , 这 样 就可 以 在 开 发 其 他 程 序 中 便 利 的 使 用 以 前 的 工 作 成 果 了 。 另 外 这 种 机 制 也 可 以支 持 小 组 开 发 , 例 如 多 名 开 发 人 员 组 成 小 组 , 规 定 好 功 能 间 的 接 口 , 然 后 分别 提 交 不 同 的 功 能 文 件 , 通 过 函 数 的 相 互 调 用 完 成

19、 程 序 的 功 能 。 这 样 可 以 较大 的 提 升 开 发 效 率 。 小 节 在 定 义 函 数 的 过 程 中 要 注 意 函 数 代 码 的 范 围 , Python没 有 利 用 “ ” 或“ begin.end” 来 标 志 代 码 的 开 始 与 结 束 , Python利 用 了 缩 进 这 种 更 接 近人 类 书 写 的 方 式 , 但 是 这 种 方 式 在 针 对 大 代 码 块 时 也 有 一 定 劣 势 , 例 如 代 码过 长 导 致 不 能 在 一 屏 中 显 示 所 有 代 码 时 就 有 容 易 出 现 类 似“ IndentationError: u

20、nexpected indent” 的 错 误 , 这 个 含 义 是 是 缩 进 错误 , 这 是 书 写 格 式 中 明 显 的 错 误 , 按 提 示 的 行 号 修 正 就 可 以 了 。 另 外 还 有 因缩 进 导 致 的 逻 辑 错 误 , 此 类 错 误 是 隐 性 的 , 系 统 不 会 给 予 提 示 所 以 更 加 隐 蔽 。实 际 上 Python的 缩 进 书 写 机 制 鼓 励 开 发 人 员 尽 量 写 短 的 代 码 , 短 的 方 法 当然 包 括 将 功 能 尽 量 包 装 成 函 数 。 Python在 函 数 调 用 过 程 中 使 用 值 传 递 的 形 式 , 所 以 主 调 函 数 中 的 实 参 不 会因 形 参 在 被 调 用 函 数 中 变 化 而 变 化 。 练 习 二 1: 尝 试 自 编 一 个 面 积 工 具 包 求 图 2-2阴 影 部 分 面 积 2: 海 伦 公 式 的 用 途 是 利 用 三 角 形 三 条 边 求 面 积 , 编 写 一 个 函 数 , 可 以 利 用海 伦 公 式 求 三 角 形 面 积 3: 编 写 一 个 求 矩 形 面 积 的 函 数 。 4: 利 用 第 2、 3题 的 成 果 编 写 程 序 , 输 入 梯 形 的 四 条 边 , 求 梯 形 面 积 。

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

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

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


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