python中ord()和chr()转化ASCII数值+解密字符串例题

1.ASCII码简介

ASCII 即美国信息交换标准代码(American Standard Code for Information Interchange),是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。

  • 发展历程:ASCII 码于 1963 年首次发布,经过多次修订和完善,逐渐成为计算机领域中最基本的字符编码标准之一。它的出现为不同计算机系统之间的数据交换和通信提供了统一的标准,使得计算机能够准确地识别和处理各种字符。
  • 编码规则:ASCII 码使用 7 位二进制数来表示一个字符,总共可以表示 128 个不同的字符。其中包括了英文字母(大写和小写)、数字(0 - 9)、标点符号、控制字符等。例如,字符 'A' 的 ASCII 码是 65,字符 '0' 的 ASCII 码是 48。这些编码值在不同的计算机系统和编程语言中都是一致的,确保了字符的正确表示和传输。
  • 应用领域:ASCII 码在计算机的各个领域都有广泛的应用。在文本处理中,它是存储和传输文本数据的基础编码方式。在网络通信中,数据以 ASCII 码的形式进行传输和交换。在编程语言中,也经常使用 ASCII 码来处理字符和字符串。

随着计算机技术的发展,ASCII 码逐渐被扩展为 8 位编码,可表示 256 个字符,以支持更多的字符集。

2.ASCll对照表

常用的ASCll值

  1. 0-9:48-57
  2. A-Z:65-90
  3. 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 思路分析

  • 字母的ASCII码值是连续的,左右移可以通过增减码值来实现,要用到ord()函数-字符转数字、chr()函数-数字转字符,因为所有字符串被循环左移,x,y,z字符特别处理一下
  • 逆序可以通过原文拼接的时候逆向+
  • 大小写转换可以调用lower()和upper()函数
# 编写代码实现解密此代码 --> 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值