Python中ord()与chr()函数转化ASCII数值:解密字符串的实例解析
1.ASCII码简介
ASCII 即美国信息交换标准代码(American Standard Code for Information Interchange),是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
随着计算机技术的发展,ASCII 码逐渐被扩展为 8 位编码,可表示 256 个字符,以支持更多的字符集。
2.ASCll对照表
常用的ASCll值
- 0-9:48-57
- A-Z:65-90
- a-z:97-122
3.python中ord()和chr()内置函数
3.1 ord()函数
ord() 函数的作用是接收一个长度为 1 的字符串作为参数,然后返回该字符所对应的 ASCII 码值或者 Unicode 码值。它的基本语法如下:
# 获取字符 'A' 对应的 ASCII 码值
print(ord('A'))
#65
# 获取字符 'a' 对应的 ASCII 码值
print(ord('a'))
# 97
# 获取字符 '中' 对应的 Unicode 码值
print(ord('中'))
# 20013
3.1 chr()函数
chr()
函数的功能与 ord()
函数相反,它接收一个整数作为参数,这个整数代表字符的 ASCII 码值或者 Unicode 码值,函数会返回对应的字符。其基本语法如下:
# 获取 ASCII 码值为 65 对应的字符
print(chr(65))
# A
# 获取 ASCII 码值为 97 对应的字符
print(chr(97))
# a
# 获取 Unicode 码值为 20013 对应的字符
print(chr(20013))
# 中
4.典型例题–解密字符串
4.1 加密过程:
1.原文中所有的字符都在字母表中被循环左移了三个位置(dec–>abz)
2.逆序储存(abcd–>dcba)
3.大小写反转(abXY–>ABxy)
4.2 思路分析
# 编写代码实现解密此代码 --> ALLdVOBs
mw,yw=input(),""
for c in mw:
if c.isupper():
# 判断是否为大写字母,实现对大写字母的单独处理
if "A"<=c<="W":
c=chr(ord(c)+3)
else:
c=chr(ord(c)-ord("X")+ord("A"))
# 将字母表XYZ三个字母,循环到ABC
c=c.lower()
# 将所有大写转化为小写
else:
if "a"<=c<="w":
c=chr(ord(c)+3)
else:
c=chr(ord(c)-ord("x")+ord("a"))
# 将字母表xyz三个字母,循环到abc
c=c.upper()
# 将所有大写转化为小写
yw=c+yw
# 实现逆向添加
print(yw)
# ALLdVOBs
# VeryGood
作者:Samuel-π神