一、编码
计算机在存储,传输的时候,都是使用二进制。
ASCII 编码:基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
用2**7=128位即可表示所有英文、数字、特殊字符;创造初期为了留有空余,又添加了一位2**8;所以ascll吗的第一位都是0;
8bit=1btye 来表示一个字符
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多。对应到中文,2**32, 4个字节。浪费资源。
初期:16位=2btye 来表示一个字节
升级:32位=4btye 来表示一个字节 2**21既可以表示世界所有文字等,浪费资源。
utf-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
gbk:国标
只包含:英文中文。
英文:a :00010000 8位,一个字节表示一个字符。
中文:中:00010000 00010000 16位,两个字节表示一个字符。
三种类型编码的转换
1.
unicode---->utf-8 s.encode(\'utf-8\')
utf-8---->Unicode s.decode(\'utf-8\')
2.
Unicode---->gbk s.encode(\'gbk\')
gbk---->unicode s.decode(\'gbk\')
3.gbk---->utf-8的转换
s.decode(\'gbk\') #现将gbk解码成Unicode
s.encode(\'utf-8\') #再将Unicode编码成utf-8
数据类型:str和byte
(一)、str的所有方法,都适用于byte;
但是不同的是,byte数据类型在内存中的编码形式是非Unicode(utf-8或gbk等,可以指定);
(计算机在存储和传输过程都是二进制,但是不能是Unicode编码的二进制)
(二)、str和byte转换方法:
str--->bytes s.encode(\'gbk\') s.encode(\'utf-8\') 叫做编码
bytes---->str s.decode(\'gbk\') s.decode(\'uft-8\') 叫做解码
在python3当中
英文:
str:表现形式:s = \' Alex\'
内部编码方式:unicode
bytes:表现形式:s = b\'Alex\'
内部编码方式:非unicode(utf-8,gbk...)
中文:
str:表现形式:s = \' 中国\'
内部编码方式:unicode
bytes:表现形式:s = b\'Alex\'
内部编码方式:非unicode(utf-8,gbk...)
二、逻辑运算符
not and or
第一种:前后都是比较运算
计算的优先级:()>not>and>or>同一优先级按照,从左到右依次计算。
第二种:前后都是数值运算
0=False ;非0=True
X or Y 的类型,如果X是对的则,return X 否则 return Y
X and Y的类型,如果X是错的则,returnX否则returnY
第三种类型:混合型(先算大小比较;再和逻辑比较;1or2>3 应该先算2>3)
比较和数字混合运算。
三、in、not in的使用
字符串中,过滤敏感字符。
s = \'666alex阿里小二\'
print(\'666a\' in s)----->是正确的。
print(\'666ex\' in s)----->是不正确的,不可跳跃判断。
print(\'666ex\' not in s)----->是正确的,不可跳跃判断。
链接:http://www.runoob.com/python/python-operators.html