Python2与Python3的区别初识:
1.内部编码不同
2.Python2的print可以不加括号,Python3需要加括号
3.Python2中有xrange()方法,Python3中是range()
4.Python2中有raw_input()方法,Python3中是input()
几个关键词id(),is ,= ,==
id() 打印内存地址
is 比较内存地址,返回值bool类型
= 赋值运算符
== 值比较
小数据池初识:
数字类型,字符串类型在小数据池中,其它类型不存在,其中:
数字类型范围(-5,257)
字符串类型:1.单字符串20位之前相同,20位之后则不同
2.字符中不能出来特殊字符
>>> a,b=-5,-5 >>> a is b $True >>> a,b = 257,257 >>> a is b $True >>> a,b = 258,258 >>> s1 is s2 $False >>> s1,s2 = 'a'*20,'a'*20 >>> s1 is s2 $True >>> s1,s2 = 'a'*21,'a'*21 >>> s1 is s2 $False >>> s1,s2 = 'a '*20,'a '*20 >>> s1 is s2 $False
字符编码:
py3字符串在内存中是用unicode编码
1.各编码之间的二进制,不能相互转化
2.文件的储存、传输,不能用unicode(使用utf-8,gbk,gbk2312等)
英文:
str:表现形式 s = 'alex'
编码方式:unicode
bytes:表现形式 s = b'alex'
编码方式:utf-8 gbk gb2312
中文:
str:表现形式 s = '中国'
编码方式:unicode
bytes:表现形式 s = b'x\e91\e91\e91\e91\e91\e91'
编码方式:utf-8 gbk gb2312
初步判断:其中\e91\e91\e91代表一个中文编码类型为utf-8,\e91\e91代表一个中文编码为gbk
#encode编码,如何str -> bytes #英亠 s1 = 'alex' s2 = s1.encode('utf-8') (括号内部可以转换为其它编码 print(s2) #中文 s1 = '中国' s22 = s1.encode('utf-8') print(s22) $b'\xe4\xb8\xad\xe5\x9b\xbd'