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

    作者:Samuel-π神

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python中ord()与chr()函数转化ASCII数值:解密字符串的实例解析

    发表回复