编码及运算符 html
1.编码 python
1.编码的概念网络
在计算机硬件中,编码(coding)是指用代码来表示各组数据资料,使其成为可利用计算机进行处理和分析的信息。代码是用来表示事物的记号,它能够用数字、字母、特殊的符号或它们之间的组合来表示。函数
2.编码的种类(经常使用种类)字体
①ASCCI编码
1.ASCCI的产生spa
在计算机中,全部的数据在存储和运算时都要使用二进制数表示(由于计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些经常使用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪一个符号,固然每一个人均可以约定本身的一套(这就叫编码),而你们若是要想互相通讯而不形成混乱,那么你们就必须使用相同的编码规则,因而美国有关的标准化组织就出台了ASCII编码,统一规定了上述经常使用符号用哪些二进制数来表示。设计
2.ASCCI的表述code
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示全部的大写和小写字母,数字0 到九、标点符号, 以及在美式英语中使用的特殊控制字符。orm
字母A用ASCII编码是十进制的65,二进制的01000001;
②unicode
1.Unicode的产生
unicode码扩展自ASCII 字元集。在严格的ASCII中,每一个字元用7位元表示,或者电脑上广泛使用的每字元有8位元宽。若是要表示中文,显然一个字节是不够的,至少须要两个字节,并且还不能和ASCII编码冲突,因此,中国制定了GB2312编码,用来把中文编进去。相似的,日文和韩文等其余语言也有这个问题。为了统一全部文字的编码,Unicode应运而生。Unicode把全部语言都统一到一套编码里,这样就不会再有乱码问题了。
2.Unicode的表述
Unicode一般用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只须要把高字节所有填为0就能够。在Unicode中:汉字“字”对应的数字是23383(十进制),十六进制表示为5B57。在Unicode中,咱们有不少方式将数字23383表示成程序中的数据
汉字“中”已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的01001110 00101101。
③UTF-8
1.UTF-8的产生
事实证实,对能够用ASCII表示的字符使用Unicode并不高效,由于Unicode比ASCII占用大一倍的空间,而对ASCII来讲高字节的0对他毫无用处。为了解决这个问题,就出现了一些中间格式的字符集,他们被称为通用转换格式,即UTF(Unicode Transformation Format)。常见的UTF格式有:UTF-7, UTF-7.5, UTF-8,UTF-16, 以及 UTF-32。这里只介绍UTF-8。
2.UTF-8的表述
UTF-8以字节为单位对Unicode进行编码。从Unicode到UTF-8的编码方式以下:
Unicode编码(十六进制) | UTF-8 字节流(二进制) |
000000-00007F | 0xxxxxxx |
000080-0007FF | 110xxxxx 10xxxxxx |
000800-00FFFF | 1110xxxx 10xxxxxx 10xxxxxx |
010000-10FFFF | 11110xxx10xxxxxx10xxxxxx10xxxxxx |
UTF-8的特色是对不一样范围的字符使用不一样长度的编码。对于0x00-0x7F之间的字符,UTF-8编码与ASCII编码彻底相同。UTF-8编码的最大长度是4个字节。从上表能够看出,4字节模板有21个x,便可以容纳21位二进制数字。Unicode的最大码位0x10FFFF也只有21位。
字符 ASCII Unicode UTF-8 A 01000001 00000000 01000001 01000001 中 x 01001110 00101101 11100100 10111000 10101101
注意(你看到不少网页的源码上会有相似<meta charset="UTF-8" />
的信息,表示该网页正是用的UTF-8编码)
④GBK
1.GBK的产生
GBK全称《汉字内码扩展规范》(GBK即“国标”、“扩展”汉语拼音的第一个字母,英文名称:Chinese Internal Code Specification) ,中华人民共和国全国信息技术标准化技术委员会1995年12月1日制订,国家技术监督局标准化司、电子工业部科技与质量监督司1995年12月15日联合以技监标函1995 229号文件的形式,将它肯定为技术规范指导性文件。这一版的GBK规范为1.0版。由于目前你们使用的主要是GB编码字库,此编码标准只收录了6763个经常使用汉字,而GB字库之外大量汉字,只能经过方正女娲补字软件拼字或其它造字程序补字。尽管补出的汉字在字形上知足须要,但在字体风格、大小、结构方面难以协调统一,而采用手工贴图的方式补字,更不雅观。进而言之,若是用户创建信息系统,或须要查询新闻、出版内容时,靠补字是没法实现的。方正开发的GBK字库,将极大地缓解缺字现象。
2.GBK的表述
GBK 亦采用双字节表示,整体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。兼容ASCCI。
2.Python中的编码转码
1.Python的编码方式
由于计算机只能处理数字,若是要处理文本,就必须先把文本转换为数字才能处理。最先的计算机在设计时采用8个比特(bit)做为一个字节(byte),因此,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),若是要表示更大的整数,就必须用更多的字节。好比两个字节能够表示的最大整数是65535
,4个字节能够表示的最大整数是4294967295
。在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言
2.python中的字符串编码
因为Python的字符串类型是str
,在内存中以Unicode表示,一个字符对应若干个字节。若是要在网络上传输,或者保存到磁盘上,就须要把str
变为以字节为单位的bytes
。
Python对bytes
类型的数据用带b
前缀的单引号或双引号表示:
x = b'ABC' >>> 'ABC'.encode('ascii') b'ABC' >>> '中文'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87' >>> '中文'.encode('ascii') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
3.Python中的转码解码和len()方法
encode(转码),decode(解码)。
x = b'ABC' >>> 'ABC'.encode('ascii') b'ABC' >>> '中文'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87' >>> b'ABC'.decode('ascii') 'ABC' >>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') '中文'
len()
函数:计算一个对象长度,若是换成bytes
,len()
函数就计算字节数。
>>> len(b'ABC') 3 >>> len(b'\xe4\xb8\xad\xe6\x96\x87') 6 >>> len('中文'.encode('utf-8')) 6
3.运算符
1.运算符概念
运算符用于执行程序代码运算,会针对一个以上操做数项目来进行运算。例如:2+3,其操做数是2和3,而运算符则是“+”。在vb2005中运算符大体能够分为5种类型:算术运算符、链接运算符、关系运算符、赋值运算符和逻辑运算符。
2.Python中的运算符
运算符优先级 ↓
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 'AND' |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
and or not | 逻辑运算符 |
PS(时间缘由,博主没有对每个运算符介绍,你们自行查阅,养成查找问题习惯)