第 5 课字符的秘密
PYTHON 基础语法 · 第 5 / 11 课

🔮 字符的秘密

ASCII 编号房间 + chr / ord 穿梭魔法
🎯 知道每个字符都有一个编号(ASCII)🎯 会用 chr() 编号→字符、ord() 字符→编号🎯 会用字符串乘法打印图形
🕐 数学储备:本课几乎不需要数学,最轻松!
课前回顾

🔄上节课我们学了啥?

① // 整除、% 取余;② 拆位:个 n%10、十 n//10%10、百 n//100。抢答:n=582,n//100 是几?n%10 是几?

📖 知识讲解
🏠

字符的编号房间(ASCII)

电脑给每个字符都编了号,这套编号叫 ASCII 码。比如:

字符ABab01空格
编号65669798484932
A(字符)
⬅️➡️
65(编号)
大写 A 住 65 号房,小写 a 住 97 号房 —— 大小写不住同一间!

记住三件事:大写 A=65;小写 a=97(比大写大 32);数字 0=48。

💡 小贴士:为什么 a 比 A 大 32?电脑设计时的巧妙安排 —— 大小写之间刚好差 32!
📖 知识讲解
🚪

chr() 和 ord():双向穿梭门

两个函数就是两扇门,在“字符”和“编号”之间穿梭:

字符 'A'
➡️ ord() ➡️
编号 65
⬅️ chr() ⬅️
字符 'A'
💡 小贴士:ord 是“序数”的缩写,chr 是“字符”的缩写 —— 一来一回,正好相反!
📖 知识讲解 · 代码
🚪

chr() 和 ord():双向穿梭门 · 代码

双向穿梭
print(ord("A"))    # 65   字符 → 编号
print(chr(65))     # A    编号 → 字符
print(ord("a"), chr(97))   # 97 a
💡 小贴士:ord 是“序数”的缩写,chr 是“字符”的缩写 —— 一来一回,正好相反!
📖 知识讲解
🔤

大小写互换的秘密

小写字母的编号 = 大写字母的编号 + 32。所以小写变大写只要减 32:

💡 小贴士:两种方法都对!upper() 更省事,但 chr/ord 是万物的“底层钥匙”。
两种方法
c = input()              # 输入一个小写字母,比如 a
# 方法一:编号加减(97-32=65)
print(chr(ord(c) - 32))
# 方法二:upper() 直接变大写
print(c.upper())
📖 知识讲解
⭐

字符串乘法:一行画图形

一个字符 × 5 = 连着的 5 个!用它来画画:

  *
 ***
*****
用空格和星号拼出的小三角
💡 小贴士:图形题的万能公式:空格 × 几 + 星号 × 几,一层一层往上搭!
📖 知识讲解 · 代码
⭐

字符串乘法:一行画图形 · 代码

字符串乘法
print(" " * 2 + "*")       # 两个空格 + 一个星
print(" " + "*" * 3)      # 一个空格 + 三个星
print("*" * 5)            # 五个星
💡 小贴士:图形题的万能公式:空格 × 几 + 星号 × 几,一层一层往上搭!
🎯 例题精讲 · 读题
P42打印字符题库 P42
输入一个 ASCII 编号(如 65),输出它对应的字符(如 A)。
就像拿着房号去敲门 🚪!

📥 输入:一个整数(编号) 📤 输出:输出对应的字符

📥 输入样例
65
📤 输出样例
A
🎯 例题精讲 · 解答
P42打印字符 · 解题

🪜 解题三步走

int(input()) 把输入变成编号数字
chr(编号) 敲开房门,拿到字符
print 输出
⚠️ 易错点:别忘了 int()!ord/chr 是一对,这里是“编号→字符”用 chr。
参考代码
n = int(input())
print(chr(n))
🎯 例题精讲 · 读题
P45打印ASCII码题库 P45
反过来!输入一个可见字符(如 A),输出它的编号(如 65)。

📥 输入:一个除空格外的可见字符 📤 输出:输出十进制编号

📥 输入样例
A
📤 输出样例
65
🎯 例题精讲 · 解答
P45打印ASCII码 · 解题

🪜 解题三步走

input() 接住一个字符(不用 int!它是字符)
ord(字符) 查出编号
print 输出
⚠️ 易错点:字符输入不要 int()!int("A") 会直接报错。
参考代码
c = input()
print(ord(c))
🎯 例题精讲 · 读题
P43小写字母转大写字母题库 P43
输入一个小写字母,输出对应的大写字母。两种解法都试试!

📥 输入:一个小写字母 📤 输出:输出对应大写字母

📥 输入样例
a
📤 输出样例
A
🎯 例题精讲 · 解答
P43小写字母转大写字母 · 解题

🪜 解题三步走

读入字符 c(不用 int)
方法一:chr(ord(c) - 32);方法二:c.upper()
输出结果
⚠️ 易错点:减 32 别写成加 32(那是大变小)。测一测 b→B 对不对!
参考代码
c = input()
print(chr(ord(c) - 32))    # 或 print(c.upper())
✏️ 随堂练习
✏️ P41 输出字符三角形

输入一个字符 c(比如 *),输出用 c 搭的 3 行等腰三角形:  *
 ***
*****

💡 提示(先自己想,再点开)
三行分别是:2空格+1个c、1空格+3个c、5个c。用 " "*2 + c 拼出来!
🔓 点开看参考答案
c = input()
print(" " * 2 + c)
print(" " + c * 3)
print(c * 5)
🕵️ 小侦探找错

🕵️ 小侦探找错

ord('B') 的结果是几?
66
65
98
B
🌟 课堂小结
🎵 字符住房间,编号叫 ASCII;
ord 查房号,chr 把门敲(A=65,a=97,相差 32 —— 记住这三个数走遍天下)
  • 每个字符都有 ASCII 编号
  • ord():字符→编号;chr():编号→字符
  • 大写 + 32 = 小写
  • upper() 快捷变大写
  • '*' * n 字符串乘法画图形
📚 课后作业 · 到 CodingMAX 提交
难度题号题目考点提示
必做P42打印字符chr() 敲门
必做P45打印ASCII码ord() 查号
必做P43小写字母转大写字母两种解法
挑战P41输出字符三角形字符串乘法
挑战P44字符菱形三角形上下拼

✅ 按题号到题库提交,提交前先对照样例自己测一遍!

🥚 编程彩蛋

🥚 字母密码特工 🕵️

每个字母 +4 就变成了“密码”:A→E、b→f。试试:chr(ord("A") + 4) 是什么?
把你的名字拼音加密后发给同桌,让他破译!