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

                                                                                                                                                                目录
                                                                                                                                                                打赏
                                                                                                                                                                0
                                                                                                                                                                0
                                                                                                                                                                0
                                                                                                                                                                0
                                                                                                                                                                172
                                                                                                                                                                分享
                                                                                                                                                                相关文章
                                                                                                                                                                [oeasy]python093_find方法_指数为负数_index_实际效果
                                                                                                                                                                本文介绍了Python中`find`方法与索引(index)的使用,包括负数索引的实际效果。回顾了`eval`函数的应用,并强调类名如`str`、`int`、`list`不可用作变量名以避免覆盖。通过示例解析了负数索引在字符串和列表中的作用,以及`index`方法的三个参数(value、start、stop)的用法。同时对比了`index`和`find`方法的区别:`index`找不到子串时抛出`ValueError`,而`find`返回-1。最后总结了正负索引的使用场景及两者的特性,提供了相关学习资源链接。
                                                                                                                                                                318 8
                                                                                                                                                                |
                                                                                                                                                                3月前
                                                                                                                                                                |
                                                                                                                                                                [oeasy]python092_eval_衡量_转化为列表
                                                                                                                                                                本文探讨了 Python 中 `eval` 函数的用法及其与字符串和列表之间的转换关系。通过实例分析,展示了如何使用 `eval` 将字符串转化为对应的数据类型,例如将表示列表的字符串转回列表。同时,文章深入讲解了 `eval` 的工作机制,包括根据本地和全局变量对字符串进行计算的能力。此外,还提醒了命名变量时需避免覆盖内置类名(如 `str`、`int`、`list`)的重要性,以免影响程序正常运行。最后,简要提及字符串和列表索引中负数的应用,并为读者提供了进一步学习的资源链接。
                                                                                                                                                                83 2
                                                                                                                                                                [oeasy]python091_列表_索引_index_中括号_索引函数
                                                                                                                                                                本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
                                                                                                                                                                90 20
                                                                                                                                                                |
                                                                                                                                                                3月前
                                                                                                                                                                |
                                                                                                                                                                [oeasy]python090_列表_构造_范围_range_start_end_step_步长
                                                                                                                                                                本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。
                                                                                                                                                                127 15
                                                                                                                                                                [oeasy]python089_列表_删除列表项_remove_列表长度_len
                                                                                                                                                                本文介绍了Python列表(list)的操作方法,重点讲解了`remove`方法的使用。通过实例演示如何删除列表中的元素,探讨了`ValueError`异常产生的原因,并分析了时间复杂度O(n)的概念。同时提及了`clear`方法清空列表的功能及`len`函数获取列表长度的用法。最后以购物清单为例,展示列表的实际应用场景,并预告快速生成列表的方法将在后续内容中介绍。
                                                                                                                                                                157 62
                                                                                                                                                                [oeasy]python088_列表_清空列表_clear
                                                                                                                                                                本文介绍了Python中列表的清空方法`clear`。通过实例讲解了`clear`与将列表赋值为空列表的区别,前者会清空原列表内容,而后者创建新空列表,不影响原列表。文中以收银程序为例,展示了`clear`的实际应用场景,并通过地址观察解释了两者的机制差异。最后总结了相关术语如`list`、`append`、`clear`等,帮助理解列表操作及方法调用的概念。
                                                                                                                                                                82 7
                                                                                                                                                                |
                                                                                                                                                                3月前
                                                                                                                                                                |
                                                                                                                                                                [oeasy]python086方法_method_函数_function_区别
                                                                                                                                                                本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
                                                                                                                                                                93 17
                                                                                                                                                                [oeasy]python083_类_对象_成员方法_method_函数_function_isinstance
                                                                                                                                                                本文介绍了Python中类、对象、成员方法及函数的概念。通过超市商品分类的例子,形象地解释了“类型”的概念,如整型(int)和字符串(str)是两种不同的数据类型。整型对象支持数字求和,字符串对象支持拼接。使用`isinstance`函数可以判断对象是否属于特定类型,例如判断变量是否为整型。此外,还探讨了面向对象编程(OOP)与面向过程编程的区别,并简要介绍了`type`和`help`函数的用法。最后总结指出,不同类型的对象有不同的运算和方法,如字符串有`find`和`index`方法,而整型没有。更多内容可参考文末提供的蓝桥、GitHub和Gitee链接。
                                                                                                                                                                84 11
                                                                                                                                                                [oeasy]python082_变量部分总结_variable_summary
                                                                                                                                                                本文介绍了变量的定义、声明、赋值及删除操作,以及Python中的命名规则和常见数据类型。通过示例讲解了字符串与整型的基本用法、类型转换方法和加法运算的区别。此外,还涉及异常处理(try-except)、模块导入(如math和random)及随机数生成等内容。最后总结了实验要点,包括捕获异常、进制转化、变量类型及其相互转换,并简述了编程中AI辅助的应用策略,强调明确目标、分步实施和逐步巩固的重要性。更多资源可在蓝桥、GitHub和Gitee获取。
                                                                                                                                                                201 97
                                                                                                                                                                [oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
                                                                                                                                                                本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
                                                                                                                                                                146 28

                                                                                                                                                                热门文章

                                                                                                                                                                最新文章

                                                                                                                                                                推荐镜像

                                                                                                                                                                更多
                                                                                                                                                                AI助理

                                                                                                                                                                你好,我是AI助理

                                                                                                                                                                可以解答问题、推荐解决方案等

                                                                                                                                                                登录插画

                                                                                                                                                                登录以查看您的控制台资源

                                                                                                                                                                管理云资源
                                                                                                                                                                状态一览
                                                                                                                                                                快捷访问