[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编辑

                                                                                                                                                                相关文章
                                                                                                                                                                |
                                                                                                                                                                7天前
                                                                                                                                                                |
                                                                                                                                                                存储 Java 索引
                                                                                                                                                                (Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
                                                                                                                                                                字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
                                                                                                                                                                58 3
                                                                                                                                                                |
                                                                                                                                                                2月前
                                                                                                                                                                |
                                                                                                                                                                JSON 编解码 数据安全/隐私保护
                                                                                                                                                                电脑录制鼠标键盘脚本,鼠标动作录制脚本,万能脚本录制器【python】
                                                                                                                                                                完整功能:实现鼠标移动、点击和键盘操作的录制与回放 数据持久化:将录制的动作序列保存为JSON文件
                                                                                                                                                                |
                                                                                                                                                                2月前
                                                                                                                                                                |
                                                                                                                                                                JSON 数据安全/隐私保护 数据格式
                                                                                                                                                                电脑录制鼠标键盘脚本, 鼠标录制器免费版电脑版, 鼠标键盘录制工具【python】
                                                                                                                                                                这个Python脚本实现了一个完整的鼠标键盘录制工具,具有以下功能特点: 可以录制鼠标移动、点击和键盘按键操作
                                                                                                                                                                |
                                                                                                                                                                6月前
                                                                                                                                                                |
                                                                                                                                                                人工智能 Python
                                                                                                                                                                [oeasy]python089_列表_删除列表项_remove_列表长度_len
                                                                                                                                                                本文介绍了Python列表(list)的操作方法,重点讲解了`remove`方法的使用。通过实例演示如何删除列表中的元素,探讨了`ValueError`异常产生的原因,并分析了时间复杂度O(n)的概念。同时提及了`clear`方法清空列表的功能及`len`函数获取列表长度的用法。最后以购物清单为例,展示列表的实际应用场景,并预告快速生成列表的方法将在后续内容中介绍。
                                                                                                                                                                201 63
                                                                                                                                                                |
                                                                                                                                                                5月前
                                                                                                                                                                |
                                                                                                                                                                存储 索引 Python
                                                                                                                                                                [oeasy]python093_find方法_指数为负数_index_实际效果
                                                                                                                                                                本文介绍了Python中`find`方法与索引(index)的使用,包括负数索引的实际效果。回顾了`eval`函数的应用,并强调类名如`str`、`int`、`list`不可用作变量名以避免覆盖。通过示例解析了负数索引在字符串和列表中的作用,以及`index`方法的三个参数(value、start、stop)的用法。同时对比了`index`和`find`方法的区别:`index`找不到子串时抛出`ValueError`,而`find`返回-1。最后总结了正负索引的使用场景及两者的特性,提供了相关学习资源链接。
                                                                                                                                                                369 8
                                                                                                                                                                |
                                                                                                                                                                6月前
                                                                                                                                                                |
                                                                                                                                                                人工智能 索引 Python
                                                                                                                                                                [oeasy]python091_列表_索引_index_中括号_索引函数
                                                                                                                                                                本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
                                                                                                                                                                160 20
                                                                                                                                                                |
                                                                                                                                                                6月前
                                                                                                                                                                |
                                                                                                                                                                Python 容器
                                                                                                                                                                [oeasy]python090_列表_构造_范围_range_start_end_step_步长
                                                                                                                                                                本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。
                                                                                                                                                                180 14
                                                                                                                                                                |
                                                                                                                                                                6月前
                                                                                                                                                                |
                                                                                                                                                                索引 Python
                                                                                                                                                                [oeasy]python092_eval_衡量_转化为列表
                                                                                                                                                                本文探讨了 Python 中 `eval` 函数的用法及其与字符串和列表之间的转换关系。通过实例分析,展示了如何使用 `eval` 将字符串转化为对应的数据类型,例如将表示列表的字符串转回列表。同时,文章深入讲解了 `eval` 的工作机制,包括根据本地和全局变量对字符串进行计算的能力。此外,还提醒了命名变量时需避免覆盖内置类名(如 `str`、`int`、`list`)的重要性,以免影响程序正常运行。最后,简要提及字符串和列表索引中负数的应用,并为读者提供了进一步学习的资源链接。
                                                                                                                                                                130 2
                                                                                                                                                                |
                                                                                                                                                                6月前
                                                                                                                                                                |
                                                                                                                                                                人工智能 Python
                                                                                                                                                                [oeasy]python088_列表_清空列表_clear
                                                                                                                                                                本文介绍了Python中列表的清空方法`clear`。通过实例讲解了`clear`与将列表赋值为空列表的区别,前者会清空原列表内容,而后者创建新空列表,不影响原列表。文中以收银程序为例,展示了`clear`的实际应用场景,并通过地址观察解释了两者的机制差异。最后总结了相关术语如`list`、`append`、`clear`等,帮助理解列表操作及方法调用的概念。
                                                                                                                                                                131 6

                                                                                                                                                                推荐镜像

                                                                                                                                                                更多