0Pricing
Competitive Programming Academy · 课时

字符、ord 与 chr 技巧

在字母与数字之间转换

字符、ord 与 chr 技巧 是 CoddyKit 上的免费 Competitive Programming Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Competitive Programming Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Competitive Programming Academy 课程共包含 4 节课。

字母也是数字

程序读取的每个字符在底层都会以数字形式存储。了解码点后,您就可以对字母进行数学运算。🔢

认识 ord()

ord() 函数会将单个字符转换为对应的整数码点。它是从字母进入算术运算的桥梁。

print(ord('A'))  # 65
print(ord('a'))  # 97

认识 chr()

chr() 函数的作用相反:给它一个数字,它会返回对应的字符。二者结合起来就能完成清晰的双向转换。

print(chr(65))  # 'A'
print(chr(97))  # 'a'

字母是连续排列的

关键技巧是:a 到 z 的码点连续排列,A 到 Z 也是如此。因此,您可以通过简单的减法为字母建立索引。

将字母映射到 0-25

减去基准字母,就能得到整洁的从 0 开始的索引。这样可以将字母转换为数组位置,用于计数。

idx = ord('c') - ord('a')
print(idx)  # 2

将索引转换回字母

反过来,只需将索引加到基准值上,再调用 chr()。这样位置 0 就变成 'a',位置 25 就变成 'z'。

ch = chr(ord('a') + 2)
print(ch)  # 'c'

移动字母(凯撒密码)

要将字母向前移动,请先加上偏移量,再对 26 取模。这是凯撒密码问题的核心。

shifted = chr((ord('y') - ord('a') + 3) % 26 + ord('a'))
print(shifted)  # 'b'

大写和小写相差 32

由于字符编码的排列方式,每个大写字母的码点都恰好比对应的小写字母小 32。如果需要,您可以完全通过算术运算转换大小写。

print(ord('a') - ord('A'))  # 32

数字也是字符

字符 '7' 并不是数字 7。请减去 ord('0'),将数字字符转换为真正的数值。

d = ord('7') - ord('0')
print(d)  # 7

快速检查字母

对于是或否的检查,使用 isalpha() 和 isdigit() 之类的方法,比手动比较码点更加简洁。

print('x'.isalpha())  # True
print('5'.isdigit())  # True

这在 CP 中为何重要

将字母映射为索引后,您可以使用一个很小的包含 26 个位置的数组,而不必使用字典。这种方式速度更快,也是字符串问题中的常用技巧。

快速检查

下面是一个关于字母运算的小问题。

回顾

您已经学会使用 ord 和 chr 在字母与数字之间转换,也了解了连续码点如何让您通过简单的数学运算为字符建立索引、移动字符并进行检查。🎉

常见问题解答

「字符、ord 与 chr 技巧」课时是免费的吗?

是的 — 「字符、ord 与 chr 技巧」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Competitive Programming Academy 课程的其余内容,请升级到 CoddyKit PRO。 Competitive Programming Academy 课程共包含 4 节课。

「字符、ord 与 chr 技巧」这节课中我会学到什么?

在字母与数字之间转换 你通过在浏览器中直接运行的动手代码来练习 Competitive Programming Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Competitive Programming Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Competitive Programming Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「字符、ord 与 chr 技巧」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Competitive Programming Academy 课中编写并运行代码吗?

能。每节 Competitive Programming Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 字符、ord 与 chr 技巧
  2. 使用频率表统计字母
  3. 正确检查回文
  4. 拆分、去除空白并重新连接单词
← 返回 Competitive Programming Academy