[oeasy]python0013_ASCII码表_英文字符编码_键盘字符

简介: [oeasy]python0013_ASCII码表_英文字符编码_键盘字符

 

ASCII 码表

回忆上次内容

    • ord(c)chr(i)
      • 这是俩函数
      • 这俩函数是一对,相反相成的⚖️
        • ord 通过 字符 找到对应的 数字
        • chr 通过 数字 找到对应的 字符
          • 字符 的本质是 数字
            • 字符都对应着一些数字
              • a 对应 97
              • b 对应 98
              • c 对应 99
                • 都连号好像应该是天经地义的?
                  • 为什么小写a从97开始?
                  • 但除了小写字母之外还有很多字符
                  • 他们都是如何分布的呢?🤔

                  小写字母

                  #输出a,b,c

                  ord("a")

                  ord("b")

                  ord("c")

                  #输出a的相对序号

                  ord("a")-ord("a")

                  #输出z-a的数字差距,相对序号

                  ord("z")-ord("a")

                    • a、b、c 这些字符是挨着的
                    • 正好从0到25,总共26个🔢
                    • 对应数字也是挨着的

                    image.gif编辑

                    编码规律

                      • 从 a-z 应该都是挨着的
                        • 26 个英文字母
                          • 为什么是从 97 开始?
                            • 应该还有别的字符
                              • 低头看一下键盘

                              image.gif编辑

                                • 除了小写字母之外
                                  • 大写字母
                                  • 数字
                                  • 符号
                                    • 大概有多少个字符呢?

                                    字符全排列

                                      • 每一个字符都会对应一个序号
                                        • 序号用二进制的方式存在字节(byte)中
                                        • 一个字节(byte)总有8位(bit)
                                        • 每一位(bit)是一个二进制(binary)数字(digit)

                                        image.gif编辑

                                          • 8个08个1 相当于
                                            • 0255

                                            image.gif编辑

                                              • 我想要
                                                • 把所有可能的序号对应的字符都数一遍
                                                • 可行么?

                                                遍历范围

                                                for i in range(2 ** 8):

                                                   print(i,end=",")

                                                  • 遍历范围是[0, 28)
                                                    • 也就是[0, 256)
                                                    • 前闭后开
                                                    • 不包含256

                                                    image.gif编辑

                                                      • 我们先把 从0到255 挨排儿捋一遍

                                                      image.gif编辑

                                                        • 如何通过序号找到对应的字符呢?

                                                        对应的字符

                                                          • 通过数字找到对应的字符是chr

                                                          for n in range(255):

                                                             print(chr(n),end="")

                                                             if n % 16 == 0:

                                                                 print()

                                                            • print(chr(n),end="")
                                                              • chr(n)
                                                                • 输出n的字符状态
                                                                  • end=""
                                                                    • 结束时什么也不输出
                                                                    • 不输出默认的换行
                                                                      • if n % 16 == 0:
                                                                        • print()
                                                                        • 如果n能被16整除
                                                                        • 那么输出换行

                                                                        image.gif编辑

                                                                          • 结果如何呢?

                                                                          结果

                                                                          image.gif编辑

                                                                            • 字母和数字还是挺完整的
                                                                            • 这套对应关系有没有个名字呢?

                                                                            ASCII 码表

                                                                              • 当时美国的工程师定义了一套编码规则
                                                                                • ASCII
                                                                                  • American Standard Code for Information Interchange
                                                                                    • 美国信息交换标准代码

                                                                                    image.gif编辑

                                                                                      • 这建立起了 字符二进制01映射关系
                                                                                        • 字符二进制数映射关系 如果不一致
                                                                                          • 面对同一个二进制数 01010101
                                                                                          • 就会映射到不同的字符
                                                                                          • 人们看到不同的字符就认为是乱码
                                                                                            • 这套ascii标准在各种计算机系统中需要统一
                                                                                            • 否则无法通信
                                                                                            • 这个 ASCII 什么时候开始有的呢?

                                                                                            初现

                                                                                              • 1967 年的时候就有了最初这个 ASCII 码表🔡
                                                                                                • 当时计算机
                                                                                                  • 低电平表示 0
                                                                                                  • 高电平表示 1
                                                                                                  • 电子计算机中所有的数据都是 0 和 1

                                                                                                  image.gif编辑

                                                                                                    • 先是由美国国家标准学会制定
                                                                                                      • (American National Standard Institute , ANSI )
                                                                                                      • 最初是美国的国家标准
                                                                                                      • 被称作美国信息交换标准代码
                                                                                                        • 美国之外的国家如何编码基本字符呢?

                                                                                                        国际化

                                                                                                          • 后来是国际标准化组织定为国际标准ISO
                                                                                                            • International Organization for Standardization a.k.a. ISO
                                                                                                            • 称为 ISO 646 标准

                                                                                                            image.gif编辑

                                                                                                              • 最后一次更新则是在 1986 年
                                                                                                                • 到目前为止共定义了 128 个字符
                                                                                                                  • 能否完整系统地看到整个ascii码表的对应关系呢?

                                                                                                                  ascii

                                                                                                                    • 我们先来下个ascii程序

                                                                                                                    sudo apt install ascii

                                                                                                                      • 上面的命令可以安装ascii这个应用

                                                                                                                      image.gif编辑

                                                                                                                      使用ascii

                                                                                                                        • 每一字符有三个部分组成
                                                                                                                          • Dec 对应的是 10 进制数
                                                                                                                          • Hex 对应的是 16 进制数
                                                                                                                          • 最后一列 对应的是 具体字符或功能

                                                                                                                          image.gif编辑

                                                                                                                            • 字符包括
                                                                                                                              • 控制
                                                                                                                              • 符号
                                                                                                                              • 英文大写字母
                                                                                                                              • 英文小写字母
                                                                                                                                • 这样就把各种字符和一个二进制数字对应起来了

                                                                                                                                解码 ASCII

                                                                                                                                  • 我们找到小写的a
                                                                                                                                    • 这个小写的 a 在电脑中存储的时候
                                                                                                                                    • 对应着一个字节
                                                                                                                                      • 8位2进制数
                                                                                                                                      • 也就是8位(0或者1)
                                                                                                                                        • 到底是多少呢?
                                                                                                                                        • 先沿着下图中1的方向
                                                                                                                                          • 向上找到110
                                                                                                                                          • 这是他的高三位
                                                                                                                                          • 765

                                                                                                                                          image.gif编辑

                                                                                                                                            • 再沿着2的方向
                                                                                                                                              • 向左找到0001
                                                                                                                                              • 这是他的低四位
                                                                                                                                              • 4321
                                                                                                                                              • 在前面加一个0
                                                                                                                                              • 得到(01100001)2进制

                                                                                                                                              总结

                                                                                                                                                • 这次我们了解了ASCII码表
                                                                                                                                                  • ASCII 码表就是
                                                                                                                                                    • American Standard Code for Information Interchange
                                                                                                                                                      • 美国信息交换标准代码
                                                                                                                                                        • ASCII 码表范围
                                                                                                                                                          • 0x30-0x39 这个范围是 数字
                                                                                                                                                            • 数字的编码减去 0x30 正好得到数字本身
                                                                                                                                                              • 0x41-0x5A 这个范围是 写字母
                                                                                                                                                              • 0x61-0x7A 这个范围是 写字母
                                                                                                                                                              • 0x20-0x7F 之间各处零散排布着各种符号

                                                                                                                                                              image.gif编辑

                                                                                                                                                                相关文章
                                                                                                                                                                |
                                                                                                                                                                2月前
                                                                                                                                                                |
                                                                                                                                                                程序员 开发工具 Python
                                                                                                                                                                [oeasy]python017_万行代码之梦_vim环境_复制粘贴
                                                                                                                                                                在这个教程中,作者分享了如何在 Vim 编辑器中快速创建和操作大量代码行。首先,通过 `yy` 复制一行,然后使用 `p` 粘贴来增加代码行数。通过反复粘贴,可以迅速生成多行代码。为了加快操作,可以用 `9999p` 来一次性粘贴9999行。接着,介绍了撤销(`u`)和重做(`ctrl+r`)的操作,以及删除整篇文档的快捷方式。最后,作者提到虽然可以生成一万行代码,但并不建议这样做,因为可能会导致程序崩溃,并提醒大家适度编程。
                                                                                                                                                                83 2
                                                                                                                                                                |
                                                                                                                                                                2月前
                                                                                                                                                                |
                                                                                                                                                                JavaScript IDE 开发工具
                                                                                                                                                                python中的SyntaxError: invalid character in identifier(语法错误:标识符中有无效字符)
                                                                                                                                                                【5月更文挑战第14天】python中的SyntaxError: invalid character in identifier(语法错误:标识符中有无效字符)
                                                                                                                                                                112 8
                                                                                                                                                                |
                                                                                                                                                                7天前
                                                                                                                                                                |
                                                                                                                                                                缓存 Shell 开发工具
                                                                                                                                                                [oeasy]python024_vim读取文件_从头复制到尾_撤销_重做_reg_寄存器
                                                                                                                                                                [oeasy]python024_vim读取文件_从头复制到尾_撤销_重做_reg_寄存器
                                                                                                                                                                16 5
                                                                                                                                                                |
                                                                                                                                                                7天前
                                                                                                                                                                |
                                                                                                                                                                Python
                                                                                                                                                                【Python】已完美解决:(Python键盘中断报错问题) KeyboardInterrupt
                                                                                                                                                                【Python】已完美解决:(Python键盘中断报错问题) KeyboardInterrupt
                                                                                                                                                                19 3
                                                                                                                                                                |
                                                                                                                                                                1月前
                                                                                                                                                                |
                                                                                                                                                                监控 数据可视化 数据库
                                                                                                                                                                【python项目推荐】键盘监控--统计打字频率
                                                                                                                                                                【python项目推荐】键盘监控--统计打字频率
                                                                                                                                                                54 13
                                                                                                                                                                |
                                                                                                                                                                2天前
                                                                                                                                                                |
                                                                                                                                                                机器学习/深度学习 缓存 安全
                                                                                                                                                                Python标准库中的`str`类型有一个`translate()`方法,它用于替换字符串中的字符或字符子集。这通常与`str.maketrans()`方法一起使用,后者创建一个映射表,用于定义哪些字符应该被替换。
                                                                                                                                                                Python标准库中的`str`类型有一个`translate()`方法,它用于替换字符串中的字符或字符子集。这通常与`str.maketrans()`方法一起使用,后者创建一个映射表,用于定义哪些字符应该被替换。
                                                                                                                                                                4 0
                                                                                                                                                                |
                                                                                                                                                                2天前
                                                                                                                                                                |
                                                                                                                                                                存储 SQL Python
                                                                                                                                                                `urllib.parse`模块是Python标准库`urllib`中的一个子模块,它提供了处理URL(统一资源定位符)的实用功能。这些功能包括解析URL、组合URL、转义URL中的特殊字符等。
                                                                                                                                                                `urllib.parse`模块是Python标准库`urllib`中的一个子模块,它提供了处理URL(统一资源定位符)的实用功能。这些功能包括解析URL、组合URL、转义URL中的特殊字符等。
                                                                                                                                                                6 0
                                                                                                                                                                Python----统计字符串中的英文字母、空格、数字和其它字符的个数。
                                                                                                                                                                Python----统计字符串中的英文字母、空格、数字和其它字符的个数。
                                                                                                                                                                |
                                                                                                                                                                28天前
                                                                                                                                                                |
                                                                                                                                                                开发工具 Python
                                                                                                                                                                [oeasy]python0021_宝剑镶宝石_爱之石中剑_批量替换_特殊字符_特殊颜色
                                                                                                                                                                在这个文本中,作者描述了一个逐步修改Python游戏`game.py`的过程,以将小丑的眼睛和石中剑的图形替换为爱心符号,并且将其颜色更改为红色。以下是内容的摘要: - 用户回顾了之前对`game.py`的分析和理解。 - 通过使用方向键和编辑模式,在代码中找到了小丑眼睛和石中剑的位置,用爱心符号(❤)替换了它们。 - 如果遇到问题,建议使用最新版的火狐浏览器进行粘贴操作。 - 使用Vim编辑器的命令模式批量替换了剑柄上的数字8为爱心,使整个剑柄充满了爱心。 - 通过插入特定代码,将爱心变为红色,从而得到红色的“爱之大剑”。
                                                                                                                                                                17 0
                                                                                                                                                                |
                                                                                                                                                                2月前
                                                                                                                                                                |
                                                                                                                                                                人工智能 Linux 开发工具
                                                                                                                                                                [oeasy]python018_ 如何下载github仓库_git_clone_下载仓库
                                                                                                                                                                在这个文档中,作者讨论了如何继续进行编程学习,特别是关于GitHub的使用。首先,回顾了从编写简单代码到管理大量代码的过程。然后,提到了通过“保存运行一条龙”操作来处理代码,以及GitHub作为全球最大的开源软件平台的重要性。在GitHub上,用户可以找到各种软件项目,包括Linux、Python和Blender等。 作者解释了GitHub的基本操作,如点赞(star)、 fork(复制项目)和watch(关注项目更新)。还介绍了如何下载项目到本地,通过`git clone`命令复制仓库的URL并将其粘贴到终端进行下载。如果遇到问题,可以尝试更换HTTP链接或等待一段时间重试。
                                                                                                                                                                202 2

                                                                                                                                                                相关实验场景

                                                                                                                                                                更多