ASCII码介绍
ASCII码(American Standard Code for Information Interchange,美国信息交换标准代码)是计算机中最基础的字符编码标准。它就像计算机世界的"字典",让计算机能够读懂我们输入的字母、数字和符号。
你知道吗?
ASCII码诞生于1963年,比大多数小学生的爸爸妈妈年纪还要大!它最初只有128个字符,但现在已成为所有计算机系统的基础。
为什么需要ASCII码?
计算机只能理解0和1(二进制),但人类使用字母、数字和符号进行交流。ASCII码解决了这个沟通问题:
- 每个字符(字母、数字、符号等)都有唯一的数字编号
- 计算机存储这些编号而不是字符本身
- 需要显示或处理时,计算机根据编号找到对应的字符
小贴士:可以把ASCII码看作字符的"身份证号",每个字符都有自己独特的数字ID。
ASCII码表
标准ASCII码表包含128个字符,分为两类:
- 可打印字符:字母(A-Z,a-z)、数字(0-9)、标点符号(!,?等)和特殊符号($、#等)
- 控制字符:用于控制设备(如回车、换行、退格等),不会在屏幕上显示
| ASCII值 | 十六进制 | 字符 | 说明 |
|---|---|---|---|
| 48-57 | 30-39 | 0-9 | 数字字符 |
| 65-90 | 41-5A | A-Z | 大写字母 |
| 97-122 | 61-7A | a-z | 小写字母 |
| 32 | 20 | 空格 | 空格字符 |
| 33 | 21 | ! | 感叹号 |
| 64 | 40 | @ | at符号 |
| 10 | 0A | LF | 换行符 |
| 13 | 0D | CR | 回车符 |
重要规律
ASCII码表中有几个有趣的规律:
- 数字0-9的ASCII码是48-57(十六进制0x30-0x39)
- 大写字母A-Z的ASCII码是65-90(0x41-0x5A)
- 小写字母a-z的ASCII码是97-122(0x61-0x7A)
- 同一个字母的大小写之间相差32(例如:A是65,a是97)
在Python中使用ASCII码
Python提供了两个内置函数来处理ASCII码:
ord()函数 - 获取字符的ASCII值
# 获取字符的ASCII值
print(ord('A')) # 输出:65
print(ord('a')) # 输出:97
print(ord('0')) # 输出:48
print(ord('$')) # 输出:36
print(ord('A')) # 输出:65
print(ord('a')) # 输出:97
print(ord('0')) # 输出:48
print(ord('$')) # 输出:36
chr()函数 - 将ASCII值转换为字符
# 将一个数字转换为对应的ASCII字符
print(chr(65)) # 输出:A
print(chr(97)) # 输出:a
print(chr(48)) # 输出:0
print(chr(33)) # 输出:!
print(chr(65)) # 输出:A
print(chr(97)) # 输出:a
print(chr(48)) # 输出:0
print(chr(33)) # 输出:!
常用技巧
变成后面一个字母
# 输入一个字母
qian= input()
# 用ord()把字母转成ASCII码,加1后变成对应后面字母的ASCII码,再用chr()转回字母
hou = chr(ord(xiao)+1)
# 输出后面字母
print(hou)
qian= input()
# 用ord()把字母转成ASCII码,加1后变成对应后面字母的ASCII码,再用chr()转回字母
hou = chr(ord(xiao)+1)
# 输出后面字母
print(hou)
小写变大写
# 输入小写
xiao= input()
# 转换成大写
# 用ord()把小写转成ASCII码,减去32后变成对应大写字母的ASCII码,再用chr()转回大写字母
da = chr(ord(xiao)-32)
# 输出大写
print(da)
xiao= input()
# 转换成大写
# 用ord()把小写转成ASCII码,减去32后变成对应大写字母的ASCII码,再用chr()转回大写字母
da = chr(ord(xiao)-32)
# 输出大写
print(da)
数字变字母(1变a,2变b……)
# 输入一个数字
shu= int(input())
# 转换成字母
# 加上96后变成对应字母的ASCII码,再用chr()转回字母
zimu = chr(shu+96)
# 输出字母
print(zimu)
shu= int(input())
# 转换成字母
# 加上96后变成对应字母的ASCII码,再用chr()转回字母
zimu = chr(shu+96)
# 输出字母
print(zimu)