网站快照
我 的 头 条 P y t h o n 基 本 使 用 方 法 P y t h o n 是 一 种 简 单 易 学 , 功 能 强 大 的 编 程 语 言 。
它 包 括 了 高 效 的 高 级 数 据 结 构 和 简 单 而 有 效 的 方 法 , 面 向 对 象 编 程 。
P y t h o n 优 雅 的 语 法 , 动 态 类 型 , 以 及 它 天 然 的 解 释 能 力 , 使 其 成 为 理 想 的 语 言 , 脚 本 和 应 用 程 序 快 速 开 发 在 大 多 数 平 台 上 的 许 多 领 域 。
P y t h o n 解 释 器 及 其 扩 展 标 准 库 的 源 码 和 编 译 版 本 可 以 从 P y t h o n 的 W e b 站 点 , h t t p : / / w w w . p y t h o n . o r g / 所 有 主 要 平 台 可 自 由 查 看 , 并 且 可 以 自 由 发 布 。
该 站 点 上 也 包 含 了 分 配 和 指 针 到 很 多 免 费 的 第 三 方 P y t h o n 模 块 , 程 序 , 工 具 , 以 及 附 加 的 文 档 。
P y t h o n 的 解 释 器 很 容 易 扩 展 新 的 功 能 , 并 在 C 或 C + + ( 或 由 C 来 调 用 其 他 语 言 ) 实 现 的 数 据 类 型 。
P y t h o n 也 很 适 于 作 为 定 制 应 用 的 一 种 扩 展 语 言 。
有 关 标 准 对 象 和 模 块 的 详 细 介 绍 , 请 参 见 P y t h o n 标 准 库 。
P y t h o n 语 言 参 考 给 出 了 语 言 的 更 正 式 的 定 义 。
需 要 编 写 C 或 C + + 扩 展 , 请 阅 读 扩 展 和 嵌 入 P y t h o n 解 释 器 和 P y t h o n / C 的 A P I 参 考 手 册 。
也 有 几 本 书 涵 盖 了 各 个 深 度 的 P y t h o n 。
本 在 线 教 程 并 不 试 图 全 面 , 涵 盖 每 一 个 功 能 , 甚 至 每 一 个 常 用 功 能 。
相 反 , 它 介 绍 了 许 多 P y t h o n 中 最 引 人 注 目 的 功 能 , 会 给 P y t h o n 语 言 的 韵 味 和 风 格 是 一 个 好 开 始 。
看 完 之 后 , 你 就 可 以 阅 读 和 编 写 P y t h o n 模 块 和 程 序 , 将 准 备 进 一 步 了 解 P y t h o n 标 准 库 描 述 的 各 种 P y t h o n 库 模 块 。
有 关 学 习 P y t h o n 的 目 录 : P y t h o n 环 境 安 装 配 置 P y t h o n 数 字 P y t h o n 字 符 串 P y t h o n 列 表 P y t h o n 元 组 P y t h o n 字 典 1 、 P y t h o n 环 境 安 装 配 置 P y t h o n 是 一 种 通 用 的 计 算 机 编 程 语 言 , 跻 身 排 名 于 世 界 前 八 最 流 行 的 编 程 语 言 。
使 用 P y t h o n , 可 以 编 写 出 很 多 东 西 , 如 : W e b 应 用 程 序 , 桌 面 应 用 程 序 , 游 戏 。
它 可 以 作 为 完 整 的 脚 本 解 释 器 和 开 发 平 台 。
今 天 , P y t h o n 语 言 由 谷 歌 , 欧 洲 核 子 研 究 中 心 , 美 国 航 空 航 天 局 , 雅 虎 和 许 多 大 型 组 织 使 用 。
在 这 个 免 费 的 初 级 课 程 , 你 可 以 学 习 P y t h o n 的 基 本 知 识 。
希 望 本 次 介 绍 更 多 学 习 后 , 可 以 做 非 初 学 者 在 线 教 程 , 如 构 建 W e b 应 用 程 序 和 其 他 在 线 教 程 。
可 以 使 用 它 进 行 P y t h o n 2 或 P y t h o n 3 编 程 。
在 线 运 行 P y t h o n 代 码 R e p l . i t P y t h o n 解 释 器 I d e o n e . c o m P y t h o n 解 释 器 C o d e p a d P y t h o n 解 释 器 运 行 P y t h o n 代 码 在 你 的 机 器 上 P y t h o n 官 方 安 装 指 南 P y C h a r m I D E ( 桌 面 I D E ) A t o m + s c r i p t p l u g i n ( 最 小 I D E ) 试 试 以 下 这 段 代 码 : 试 试 这 个 代 码 , 以 测 试 是 否 已 经 正 确 安 装 了 P y t h o n 。
# ! / u s r / b i n / e n v p y t h o n p r i n t ( H e l l o W o r l d ! ) p r i n t ( T h i s i s a P y t h o n p r o g r a m . ) ( 在 P y t h o n 2 . x 中 , 打 印 不 必 使 用 中 括 号 , 对 于 P y t h o n 3 . X 是 必 需 的 ) 执 行 后 输 出 结 果 : H e l l o W o r l d ! T h i s i s a P y t h o n p r o g r a m 2 、 P y t h o n 数 字 一 台 计 算 机 上 的 基 本 层 面 只 是 二 进 制 数 字 ( 0 , 1 ) 。
每 一 个 编 程 语 言 支 持 某 种 形 式 的 数 字 , 但 不 是 二 进 制 。
P y t h o n 数 字 有 更 广 泛 的 理 解 , 它 支 持 : 自 然 数 ( 也 称 为 整 数 或 短 i n t ) 实 数 ( 浮 点 或 浮 点 数 ) 非 常 大 的 数 字 ( l o n g ) 复 数 ( 你 可 能 知 道 , 数 学 课 里 的 复 数 ) 当 定 义 数 字 被 存 储 在 变 量 ( 一 个 “ 数 据 保 持 器 ” ) , 则 无 需 明 确 定 义 数 字 的 类 型 。
例 如 : # ! / u s r / b i n / p y t h o n x = 3 # a n i n t e g e r s t o r e d ( i n v a r i a b l e x ) f = 3 . 1 4 1 5 9 2 6 # a f l o a t i n g r e a l p o i n t ( i n v a r i a b l e f ) n a m e = P y t h o n # a s t r i n g b i g = 3 5 8 3 1 5 7 9 1 L # l o n g , a v e r y l a r g e n u m b e r z = c o m p l e x ( 2 , 3 ) # ( 2 + 3 i ) a c o m p l e x n u m b e r . c o n s i s t s o f r e a l a n d i m a g i n a r y p a r t . p r i n t ( x ) p r i n t ( f ) p r i n t ( n a m e ) p r i n t ( b i g ) p r i n t ( z ) 结 果 : 3 3 . 1 4 1 5 9 2 6 P y t h o n 3 5 8 3 1 5 7 9 1 ( 2 + 3 j ) 最 大 值 取 决 于 你 的 平 台 上 。
在 3 2 位 机 上 的 最 小 值 和 最 大 值 : 数 据 类 型 最 小 值 最 大 值 s i g n e d i n t 2 1 4 7 4 8 3 6 4 7 2 1 4 7 4 8 3 6 4 7 l o n g 只 受 内 存 限 制 f l o a t 2 . 2 2 5 0 7 3 8 5 8 5 0 7 2 0 1 4 e 3 0 8 1 . 7 9 7 6 9 3 1 3 4 8 6 2 3 1 5 7 e + 3 0 8 在 6 4 位 计 算 机 上 的 数 字 范 围 : 数 据 类 型 最 小 值 最 大 值 s i g n e d i n t 9 2 2 3 3 7 2 0 3 6 8 5 4 7 7 5 8 0 7 9 2 2 3 3 7 2 0 3 6 8 5 4 7 7 5 8 0 7 l o n g 只 受 内 存 限 制 f l o a t 2 . 2 2 5 0 7 3 8 5 8 5 0 7 2 0 1 4 e 3 0 8 1 . 7 9 7 6 9 3 1 3 4 8 6 2 3 1 5 7 e + 3 0 8 操 作 符 你 可 以 做 算 术 运 算 , 如 加 ( + ) , 乘 ( * ) , 除 ( / ) , 减 ( ) 。
P y t h o n 不 支 持 x 符 号 乘 法 : 乘 法 符 号 为 * , x 可 被 用 作 变 量 。
尝 试 这 个 : # ! / u s r / b i n / e n v p y t h o n x = 3 y = 8 s u m = x + y p r i n t ( s u m ) 预 期 的 输 出 结 果 : 1 1 用 户 输 入 也 可 以 要 求 用 户 使 用 r a w _ i n p u t 函 数 进 行 输 入 : # ! / u s r / b i n / e n v p y t h o n x = i n t ( r a w _ i n p u t ( E n t e r x : ) ) y = i n t ( r a w _ i n p u t ( E n t e r y : ) ) s u m = x + y p r i n t ( s u m ) 在 这 种 情 况 下 , 我 们 希 望 整 数 ( 整 数 ) , 这 就 是 为 什 么 我 们 使 用 i n t ( ) 函 数 。
如 果 想 要 输 入 浮 点 数 , 那 么 应 该 使 用 : f l o a t ( r a w _ i n p u t ( “ E n t e r x : ” ) ) 。
在 最 新 的 P y t h o n 版 本 , 可 以 使 用 i n p u t ( ) 函 数 来 代 替 : # ! / u s r / b i n / e n v p y t h o n x = i n t ( i n p u t ( E n t e r x : ) ) y = i n t ( i n p u t ( E n t e r y : ) ) s u m = x + y p r i n t ( s u m ) # 3 、 P y t h o n 3 字 符 串 P y t h o n 已 经 在 内 置 支 持 用 于 存 储 和 操 作 文 本 : 字 符 序 列 被 称 为 子 符 串 。
要 定 义 字 符 串 应 将 文 本 放 在 引 号 之 间 , 如 果 使 用 单 引 号 ( ) , 双 引 号 ( ) 或 三 引 号 ( ) , 这 并 不 重 要 。
并 无 规 定 最 少 和 最 大 在 字 符 串 中 可 存 储 字 符 的 数 目 。
一 个 空 字 符 串 没 有 文 字 引 号 。
例 如 : s = h e l l o s = h e l l o s = h e l l o 我 们 可 以 很 容 易 打 印 文 本 和 获 取 文 本 的 长 度 : # ! / u s r / b i n / e n v p y t h o n s = H e l l o w o r l d # d e f i n e t h e s t r i n g p r i n t ( s ) p r i n t ( l e n ( s ) ) # p r i n t s t h e l e n g t h o f t h e s t r i n g 字 符 串 的 索 引 P y t h o n 索 引 字 符 串 的 字 符 , 每 一 个 索 引 与 一 个 唯 一 的 字 符 相 关 联 。
例 如 , 在 字 符 串 “ p y t h o n ” 中 的 字 符 的 索 引 : P y t h o n 字 符 串 的 索 引 第 0 索 引 用 于 字 符 串 的 第 一 个 字 符 。
访 问 字 符 使 用 [ ] 语 法 。
因 此 , s [ 0 ] 是 一 个 字 符 串 的 第 一 个 字 符 。
索 引 s [ 1 ] 是 第 二 个 字 符 。
字 符 不 存 在 的 不 能 被 使 用 。
上 面 的 例 子 索 引 只 到 5 , 这 意 味 着 s [ 6 ] 是 不 可 访 问 的 。
请 尝 试 以 下 操 作 : # ! / u s r / b i n / p y t h o n s = H e l l o P y t h o n p r i n t ( s ) # p r i n t s w h o l e s t r i n g p r i n t ( s [ 0 ] ) # p r i n t s H p r i n t ( s [ 1 ] ) # p r i n t s e 如 果 使 用 P y t h o n 3 . x p r i n t 函 数 需 要 使 用 括 号 。
字 符 串 切 片 给 定 一 个 字 符 串 s , 切 片 的 语 法 是 : s [ s t a r t I n d e x : p a s t I n d e x ] s t a r t I n d e x 是 字 符 串 的 开 始 索 引 。
p a s t I n d e x 是 切 片 的 终 点 。
如 果 省 略 了 第 一 个 索 引 , 切 片 将 从 头 开 始 。
如 果 省 略 了 最 后 一 个 索 引 , 切 片 则 到 字 符 串 的 结 尾 。
例 如 : # ! / u s r / b i n / p y t h o n s = H e l l o P y t h o n p r i n t ( s [ 0 : 2 ] ) # p r i n t s H e p r i n t ( s [ 2 : 4 ] ) # p r i n t s l l p r i n t ( s [ 6 : ] ) # p r i n t s P y t h o n 修 改 字 符 串 在 P y t h o n 中 有 许 多 方 法 可 以 用 于 修 改 字 符 串 。
它 们 创 建 字 符 串 , 取 代 了 旧 的 字 符 串 的 副 本 。
# ! / u s r / b i n / p y t h o n s = H e l l o P y t h o n p r i n t ( s + + s ) # p r i n t c o n c a t e n a t e d s t r i n g . p r i n t ( s . r e p l a c e ( H e l l o , T h a n k s ) ) # p r i n t a s t r i n g w i t h a r e p l a c e d w o r d # c o n v e r t s t r i n g t o u p p e r c a s e s = s . u p p e r ( ) p r i n t ( s ) # c o n v e r t t o l o w e r c a s e s = s . l o w e r ( ) p r i n t ( s ) # # P y t h o n 字 符 串 比 较 , 包 含 和 串 联 要 测 试 两 个 字 符 串 是 否 相 等 使 用 等 号 ( = = ) 。
可 以 使 用 “ i n ” 关 键 字 测 试 一 个 字 符 串 包 含 子 字 符 串 。
要 添 加 字 符 串 连 接 在 一 起 使 用 加 ( + ) 运 算 符 。
# ! / u s r / b i n / p y t h o n s e n t e n c e = T h e c a t i s b r o w n q = c a t i f q = = s e n t e n c e : p r i n t ( s t r i n g s e q u a l ) i f q i n s e n t e n c e : p r i n t ( q + f o u n d i n + s e n t e n c e ) 转 义 字 符 在 P y t h o n 中 有 特 殊 的 字 符 , 可 以 在 字 符 串 中 使 用 这 些 特 殊 的 字 符 。
可 以 使 用 它 们 来 创 建 新 行 , 制 表 符 等 等 。
让 我 们 实 际 操 作 例 子 , 使 用 “ \ \ n ” 或 换 行 符 : # ! / u s r / b i n / e n v p y t h o n s t r 1 = I n P y t h o n , \ \ n y o u c a n u s e s p e c i a l c h a r a c t e r s i n s t r i n g s . \ \ n T h e s e s p e c i a l c h a r a c t e r s c a n b e . . . p r i n t ( s t r 1 ) 有 时 可 能 想 显 示 双 引 号 括 起 来 , 但 是 它 们 已 经 习 惯 使 用 字 符 串 在 开 始 或 结 束 位 置 , 所 以 我 们 不 得 不 转 义 它 们 。
一 个 例 子 : # ! / u s r / b i n / e n v p y t h o n s t r 1 = T h e w o r d \ \ c o m p u t e r \ \ w i l l b e i n q u o t e s . p r i n t ( s t r 1 ) 在 字 符 串 中 使 用 特 殊 字 符 如 下 所 示 : 操 作 字 符 新 行 \ \ n 引 号 \ \ 单 引 号 \ \ 制 表 符 \ \ t 反 斜 杠 \ \ \ \ 4 、 P y t h o n 列 表 P y t h o n 有 一 个 数 据 类 型 叫 列 表 , 被 称 为 ‘ l i s t ’ . 列 表 可 以 包 含 字 符 串 ( 文 字 ) 和 数 字 。
列 表 使 用 的 是 括 号 定 义 [ ] . 要 访 问 数 据 , 使 用 相 同 的 括 号 。
如 字 符 串 , 第 一 元 素 是 [ 0 ] 。
列 表 用 法 示 例 如 下 : # ! / u s r / b i n / p y t h o n l = [ D r a k e , D e r p , D e r e k , D o m i n i q u e ] p r i n t l # p r i n t s a l l e l e m e n t s p r i n t l [ 0 ] # p r i n t f i r s t e l e m e n t p r i n t l [ 1 ] # p r i n t s s e c o n d e l e m e n t 输 出 结 果 : [ D r a k e , D e r p , D e r e k , D o m i n i q u e ] D r a k e D e r p 追 加 和 删 除 列 表 项 我 们 可 以 使 用 函 数 a p p e n d ( ) 和 r e m o v e ( ) 来 操 作 列 表 。
# ! / u s r / b i n / p y t h o n l = [ D r a k e , D e r p , D e r e k , D o m i n i q u e ] p r i n t l # p r i n t s a l l e l e m e n t s l . a p p e n d ( V i c t o r i a ) # a d d e l e m e n t . p r i n t l # p r i n t a l l e l e m e n t s l . r e m o v e ( D e r p ) # r e m o v e e l e m e n t . l . r e m o v e ( D r a k e ) # r e m o v e e l e m e n t . p r i n t l # p r i n t a l l e l e m e n t s . 输 出 结 果 : [ D r a k e , D e r p , D e r e k , D o m i n i q u e ] [ D r a k e , D e r p , D e r e k , D o m i n i q u e , V i c t o r i a ] [ D e r e k , D o m i n i q u e , V i c t o r i a ] 列 表 排 序 我 们 可 以 使 用 s o r t ( ) 函 数 排 序 列 表 。
# ! / u s r / b i n / p y t h o n l = [ D r a k e , D e r p , D e r e k , D o m i n i q u e ] p r i n t l # p r i n t s a l l e l e m e n t s l . s o r t ( ) # s o r t s t h e l i s t i n a l p h a b e t i c a l o r d e r p r i n t l # p r i n t s a l l e l e m e n t s 输 出 结 果 : [ D r a k e , D e r p , D e r e k , D o m i n i q u e ] [ D e r e k , D e r p , D o m i n i q u e , D r a k e ] 如 果 想 要 列 表 降 序 排 列 , 可 使 用 r e v e r s e ( ) 函 数 。
# ! / u s r / b i n / p y t h o n l = [ D r a k e , D e r p , D e r e k , D o m i n i q u e ] p r i n t l # p r i n t s a l l e l e m e n t s l . s o r t ( ) # s o r t s t h e l i s t i n a l p h a b e t i c a l o r d e r l . r e v e r s e ( ) # r e v e r s e o r d e r . p r i n t l # p r i n t s a l l e l e m e n t s 输 出 结 果 : [ D r a k e , D e r p , D e r e k , D o m i n i q u e ] [ D r a k e , D o m i n i q u e , D e r p , D e r e k ] 5 、 P y t h o n 元 组 元 组 数 据 结 构 用 于 存 储 一 组 数 据 。
元 组 中 的 元 素 以 逗 号 分 隔 。
一 旦 创 建 , 元 组 中 的 值 不 能 改 变 。
在 P y t h o n 中 一 个 空 的 元 组 将 被 定 义 为 : t u p l e = ( ) 逗 号 需 要 用 在 一 个 项 目 的 元 组 : t u p l e = ( 3 , ) 一 个 项 目 使 用 逗 号 可 能 有 点 反 直 观 , 但 是 没 有 逗 号 在 单 个 项 目 中 , 则 无 法 访 问 该 元 素 。
对 于 多 个 项 目 , 不 必 使 用 逗 号 在 结 尾 。
这 是 元 组 的 一 个 例 子 : p e r s o n I n f o = ( D i a n a , 3 2 , N e w Y o r k ) 元 组 内 的 数 据 可 以 是 一 个 或 多 个 数 据 类 型 , 如 文 本 和 数 字 。
数 据 存 取 访 问 , 我 们 可 以 简 单 的 使 用 索 引 的 数 据 。
像 往 常 一 样 , 索 引 是 一 个 在 括 号 内 的 数 字 : # ! / u s r / b i n / e n v p y t h o n p e r s o n I n f o = ( D i a n a , 3 2 , N e w Y o r k ) p r i n t ( p e r s o n I n f o [ 0 ] ) p r i n t ( p e r s o n I n f o [ 1 ] ) 输 出 结 果 : D i a n a 3 2 如 果 想 一 次 赋 值 给 多 个 变 量 , 可 以 使 用 元 组 : # ! / u s r / b i n / e n v p y t h o n n a m e , a g e , c o u n t r y , c a r e e r = ( D i a n a , 3 2 , C a n a d a , C o m p S c i ) p r i n t ( c o u n t r y ) 在 右 侧 的 元 组 被 写 入 。
左 边 的 运 算 等 于 运 算 符 是 对 应 的 变 量 。
输 出 如 下 : C a n a d a P y t h o n 中 追 加 元 素 到 元 组 如 果 有 一 个 元 组 , 可 以 将 它 执 行 + 操 作 。
可 以 只 添 加 一 个 元 组 到 现 有 的 元 组 。
# ! / u s r / b i n / e n v p y t h o n x = ( 3 , 4 , 5 , 6 ) x = x + ( 1 , 2 , 3 ) p r i n t ( x ) 输 出 : ( 3 , 4 , 5 , 6 , 1 , 2 , 3 ) 转 换 元 组 元 组 到 列 表 是 将 元 组 转 换 为 一 个 元 组 , 可 以 使 用 t u p l e ( ) 函 数 。
# ! / u s r / b i n / e n v p y t h o n l i s t N u m b e r s = [ 6 , 3 , 7 , 4 ] x = t u p l e ( l i s t N u m b e r s ) p r i n t ( x ) 可 以 使 用 l i s t ( ) 函 数 将 现 有 的 元 组 转 换 为 列 表 : # ! / u s r / b i n / e n v p y t h o n x = ( 4 , 5 ) l i s t N u m b e r s = l i s t ( x ) p r i n t ( l i s t N u m b e r s ) 元 组 转 为 字 符 串 , 如 果 元 组 中 只 包 含 字 符 串 ( 文 本 ) , 可 以 使 用 : # ! / u s r / b i n / e n v p y t h o n p e r s o n = ( D i a n a , C a n a d a , C o m p S c i ) s = . j o i n ( p e r s o n ) p r i n t ( s ) 排 序 元 组 元 组 数 组 是 不 能 修 改 的 , 并 且 没 有 任 何 排 序 功 能 。
但 是 可 以 使 用 s o r t e d ( ) 函 数 返 回 一 个 列 表 。
这 个 列 表 可 被 转 换 到 一 个 新 的 元 组 。
请 记 住 元 组 是 不 能 被 修 改 的 , 我 们 简 单 的 创 建 一 个 新 的 元 组 , 在 排 序 时 出 现 这 种 情 况 。
# ! / u s r / b i n / e n v p y t h o n p e r s o n = ( A l i s o n , V i c t o r i a , B r e n d a , R a c h e l , T r e v o r ) p e r s o n = t u p l e ( s o r t e d ( p e r s o n ) ) p r i n t ( p e r s o n ) 6 、 P y t h o n 3 字 典 字 典 可 以 被 看 作 是 一 个 无 序 的 键 : 值 对 。
一 对 大 括 号 用 于 创 建 一 个 空 的 字 典 : . 每 个 元 素 可 以 映 射 到 一 个 特 定 的 值 。
整 数 或 字 符 串 可 以 用 来 作 索 引 。
字 典 没 有 顺 序 。
让 我 们 用 一 个 例 子 作 一 个 简 单 的 解 释 : # ! / u s r / b i n / p y t h o n w o r d s = w o r d s [ H e l l o ] = B o n j o u r w o r d s [ Y e s ] = O u i w o r d s [ N o ] = N o n w o r d s [ B y e ] = A u R e v o i r p r i n t w o r d s [ H e l l o ] p r i n t w o r d s [ N o ] 输 出 : B o n j o u r N o n 我 们 并 不 局 限 于 在 值 部 分 来 用 单 词 的 定 义 。
一 个 演 示 : # ! / u s r / b i n / p y t h o n d i c t = d i c t [ F o r d ] = C a r d i c t [ P y t h o n ] = T h e P y t h o n P r o g r a m m i n g L a n g u a g e d i c t [ 2 ] = T h i s s e n t e n c e i s s t o r e d h e r e . p r i n t d i c t [ F o r d ] p r i n t d i c t [ P y t h o n ] p r i n t d i c t [ 2 ] 输 出 : C a r T h e P y t h o n P r o g r a m m i n g L a n g u a g e T h i s s e n t e n c e i s s t o r e d h e r e . 操 作 字 典 我 们 可 以 在 字 典 声 明 之 后 操 作 存 储 在 其 中 的 数 据 。
这 显 示 在 下 面 的 例 子 : # ! / u s r / b i n / p y t h o n w o r d s = w o r d s [ H e l l o ] = B o n j o u r w o r d s [ Y e s ] = O u i w o r d s [ N o ] = N o n w o r d s [ B y e ] = A u R e v o i r p r i n t w o r d s # p r i n t k e y p a i r s . d e l w o r d s [ Y e s ] # d e l e t e a k e y p a i r . p r i n t w o r d s # p r i n t k e y p a i r s . w o r d s [ Y e s ] = O u i ! # a d d n e w k e y p a i r . p r i n t w o r d s # p r i n t k e y p a i r s . 输 出 : 粤 I C P 备 1 5 1 0 0 1 9 8 号 4