[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个
- 对应数字也是挨着的
编辑
编码规律
- 从 a-z 应该都是挨着的
- 26 个英文字母
- 为什么是从 97 开始?
- 应该还有别的字符
- 低头看一下键盘
编辑
- 除了小写字母之外
- 大写字母
- 数字
- 符号
- 大概有多少个字符呢?
字符全排列
- 每一个字符都会对应一个序号
- 序号用二进制的方式存在字节(byte)中
- 一个字节(byte)总有8位(bit)
- 每一位(bit)是一个二进制(binary)数字(digit)
编辑
- 从
8个0 到 8个1 相当于
- 从
0 到 255
编辑
- 我想要
- 把所有可能的序号对应的字符都数一遍
- 可行么?
遍历范围
for i in range(2 ** 8):
print(i,end=",")
- 遍历范围是[0, 28)
- 也就是[0, 256)
- 前闭后开
- 不包含256
编辑
- 我们先把 从0到255 挨排儿捋一遍
编辑
- 如何通过序号找到对应的字符呢?
对应的字符
- 通过数字找到对应的字符是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整除
- 那么输出换行
编辑
- 结果如何呢?
结果
编辑
- 字母和数字还是挺完整的
- 这套对应关系有没有个名字呢?
ASCII 码表
- 当时美国的工程师定义了一套编码规则
ASCII
-
American Standard Code for Information Interchange
- 美国信息交换标准代码
编辑
- 这建立起了
字符 和 二进制01 的 映射关系
字符 和 二进制数 的 映射关系 如果不一致
- 面对同一个二进制数 01010101
- 就会映射到不同的字符
- 人们看到不同的字符就认为是乱码
- 这套ascii标准在各种计算机系统中需要统一
- 否则无法通信
- 这个 ASCII 什么时候开始有的呢?
初现
- 1967 年的时候就有了最初这个 ASCII 码表
- 当时计算机
- 低电平表示 0
- 高电平表示 1
- 电子计算机中所有的数据都是 0 和 1
编辑
- 先是由美国国家标准学会制定
- (American National Standard Institute , ANSI )
- 最初是美国的国家标准
- 被称作美国信息交换标准代码
- 美国之外的国家如何编码基本字符呢?
国际化
- 后来是国际标准化组织定为国际标准ISO
- International Organization for Standardization a.k.a. ISO
- 称为 ISO 646 标准
编辑
- 最后一次更新则是在 1986 年
- 到目前为止共定义了 128 个字符
- 能否完整系统地看到整个ascii码表的对应关系呢?
ascii
- 我们先来下个ascii程序
sudo apt install ascii
- 上面的命令可以安装ascii这个应用
编辑
使用ascii
- 每一字符有三个部分组成
- Dec 对应的是 10 进制数
- Hex 对应的是 16 进制数
- 最后一列 对应的是 具体字符或功能
编辑
- 字符包括
- 控制
- 符号
- 英文大写字母
- 英文小写字母
- 这样就把各种字符和一个二进制数字对应起来了
解码 ASCII
- 我们找到小写的
a
- 这个小写的
a 在电脑中存储的时候 - 对应着一个字节
- 8位2进制数
- 也就是8位(0或者1)
- 到底是多少呢?
- 先沿着下图中1的方向
- 向上找到
110 - 这是他的高三位
-
765位
编辑
- 再沿着2的方向
- 向左找到
0001 - 这是他的低四位
-
4321位 - 在前面加一个
0 - 得到(
01100001)2进制
总结
- 这次我们了解了
ASCII码表
ASCII 码表就是
-
American Standard Code for Information Interchange
- 美国信息交换标准代码
- ASCII 码表范围
0x30-0x39 这个范围是 数字
- 数字的编码减去
0x30 正好得到数字本身
-
0x41-0x5A 这个范围是 大 写字母 -
0x61-0x7A 这个范围是 小 写字母 -
0x20-0x7F 之间各处零散排布着各种符号
编辑
- 字符在计算机当中是用二进制方式存储的
- 我们现在可以得到字符的序号
- 但是能通过字符序号
- 得到字符的二进制形态么?
- 我们下次再说
- 蓝桥->https://www.lanqiao.cn/teacher/3584
- github->GitHub - overmind1980/oeasy-python-tutorial: 良心的 Python 教程,面向零基础初学者简明易懂的 Python3 入门基础课程。在linux+vim生产力环境下,从浅入深,从简单程序学到网络爬虫。可以配合蓝桥云上实验环境操作。
- gitee->oeasy教您玩转python教程: 面向零基础初学者的简明易懂的 Python3 入门课程,对没有编程经验的同学也非常友好。在vim下从浅入深,逐步学习。从基础入门学习到爬虫。
- 视频->[oeasy]教您玩转python零基础学python入门教程(合集)_哔哩哔哩_bilibili 作者:oeasy
[oeasy]python0013_ASCII码表_英文字符编码_键盘字符的更多相关文章
- 一、java基础-数据类型_数据类型转化_字符编码_转义字符
1.Java 支持的8种基本数据类型: java的四种整数数据类型:byte 1 short 2 int4 long8 byte 8位带符号整数 -128到127之 ...
- eclipse设置字体_字符编码_快捷键
eclipse设置字体.字符编码.快捷键 1.设置字体: preferences->general->appearnce->colors and fonts-->basic-- ...
- 【字符编码】Java字符编码详细解答及问题探讨
一.前言 继上一篇写完字节编码内容后,现在分析在Java中各字符编码的问题,并且由这个问题,也引出了一个更有意思的问题,笔者也还没有找到这个问题的答案.也希望各位园友指点指点. 二.Java字符编码 ...
- Day2_数字类型_字符串类型_列表类型_元组_字典_集合_字符编码_文件处理
数字类型: 作用:年纪,等级,薪资,身份证号等: 10进制转为2进制,利用bin来执行. 10进制转为8进制,利用oct来执行. 10进制转为16进制,利用hex来执行. #整型age=10 prin ...
- Day2_元组_字典_集合_字符编码_文件处理
元组: 作用:存多个值,元组不可变,主要用来读 age=(11,22,33,44,55) print(age[2]) #取出元组内的值 print(age[1:4]) #取出元组内的某些值 print ...
- [19/03/28-星期四] IO技术_基本概念&字符编码与解码
一.概念 输入(Input) 指的是:可以让程序从外部系统获得数据(核心含义是“读”,读取外部数据) 常见的应用: Ø 读取硬盘上的文件内容到程序.例如:播放器打开一个视频文件.word打开一个do ...
- Python基础(5)_字符编码、文件处理
一.文件读取过程: 1. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的,断电后数 ...
- python之路-python字符编码
编码的发展 py2的字符编码 py3的字符编码 编码的发展: 编码表:编码是信息从一种形式或格式转换为另一种形式的过程也称为计算机编程语言的代码简称编码.编码表记录着我们常见的明文所对应的计算机二进制 ...
- Python字符编码和二进制不得不说的故事
二进制 核心思想: 冯诺依曼 + 图灵机 电如何表示状态,才能稳定? 计算机开始设计的时候并不是考虑简单,而是考虑能自动完成任务与结果的可靠性, 简单始终是建立再稳定.可靠基础上 经过尝试10进制,但 ...
- linux中修改字符编码
一. ubuntu修改字符编码 1. 添加字符编码,例如zh_CN.UTF-8,有两种方式 方法1:locale-gen zh_CN.UTF-8 #locale-gen命令只在ubuntu中才有 ...
随机推荐
- uniapp 微信支付,小程序支付,支付宝支付问题汇总
背景介绍 uni-app 可以转微信小程序或直接打包 APP ,支付模块使用统一方法 uni.requestPayment 但是不同平台参数不同容易出现混淆错乱. 相关网站 uni-app 统一支付: ...
- js 数组按指定字段转map-list结构
js 数组按指定字段转map-list结构 背景介绍 在开发过程中经常会出现接口返回整个数组,我们需要将数组进行二次处理,如下格式按照不同功能模块(type)进行数据拆分 原始数据 const lis ...
- log4j日志记录级别
目录 一.日志的作用 二.log4j的日志级别和简介 三.log4j配置文件包含的节点简介 四.logger配置说明 一.日志的作用 问题追踪:通过日志不仅仅包括我们程序的一些 bug,也可以在安 ...
- 高分辨率食道测压(HRM)
高分辨率测压(High resolution Manometry) HRM的优势 高分辨率食管测压不但实现了从咽部到胃部的全程功能监测,而且插管无需牵拉,操作十分方便.更为重要的是,临床医生经过简单的 ...
- Angular等了三年,那个她已经来了
Angular生态丰富,功能强大,支撑了许多大型项目的开发.而且一直在前方等待着其他框架跟上.但是不得不直面的一个问题就是:"在等待其他框架跟上的这三年",Angular在陆陆续续 ...
- JS+DOM简要笔记
js官方文档: https://www.w3school.com.cn/js/index.asp 简单理解:html是内容,css是控制样式,js是行为. 1,js弱类型特点 JavaScript 是 ...
- C++笔记(6) 指针
1.指针和数组 指针和数组基本等价的原因在于指针算数和C++内部处理数组的方式.在很多情况下,可以用相同的方式使用数组名和指针名. 在多数情况下,C++将数组名视为数组的第一个元素的地址.指针p的值为 ...
- vue自定义指令 - directive
https://cn.vuejs.org/v2/guide/custom-directive.html 除了核心功能默认内置的指令,Vue也允许注册自定义指令.有的情况下,对普通 DOM 元素进行底层 ...
- 如何使用 Loadgen 来简化 HTTP API 请求的集成测试
引言 在编写 HTTP 服务的过程中,集成测试 [1] 是保证程序正确性的重要一环,如下图所示,其基本的流程就是不断向服务发起请求然后校验响应的状态和数据等: 为大量的 API 和用例编写测试是一件繁 ...
- Scrapy框架(九)--分布式爬虫
分布式爬虫 - 概念:我们需要搭建一个分布式的机群,让其对一组资源进行分布联合爬取. - 作用:提升爬取数据的效率 - 如何实现分布式? - 安装一个scrapy-redis的组件 爬取到的数据自动存 ...