python day6 小知识点总结 str转bytes类型

------------恢复内容开始------------

1. python2 ,python3的区别

python2  ascii码    python3 UTF-8

python2 prin 支持不加括号  python不支持

python中有range 还有Xrange(生成器) python只有range有序列表

python中用户交互 raw_input  python3为input

2. =  ,== ,is(比较内存地址)  ,id(内容)查看id  

= 赋值 

== 比较值是否相等

is 比较内存地址

li1 = [1,2,3]

li1 = li2

print(li1 is li2)

print(id(li1),id(li2))

3.分类 数字,字符串  小数据值

数字-5-256范围内 变量对应值一致 ,共同使用一个内存地址

字符串范围使用同一个内存地址 1.不可包含特殊字符 2.s*20 同一个地址 ,s*21两个地址

i1 = 6

i2 = 6

print(id(i1),id(i2))

除了数字和str list 和 dict tuple set 没有小数据池概念

4.编码 

ascii码    A :一个字符用一个字节表示   一个字节8位        0000100

unicode  A :一个字符用四个字节表示   32位      00010001 0001010 00100010 00101010

utf-8  A: 一个字符用一个字节表示 8位  00101001  中:一个中文用三个字节表示24位  01010101 00100100 00101001 

gbk  A:一个字符用一个字节表示 8位 01010101   中: 一个中文用两个字节表示16位 01010101 00100101

1.各个编码之间的二进制是不可以互相识别的,会产生乱码

2.文件的储存和传输不能是unicode,只能是utf-8 或者utf-16 或者gbk 或者gbk2312 或者ascii 因为unicode占用流量太大

python3:

python3中的str在内存中的编码方式是unicode

bytes数据类型  str如果需要传输或存储 需要先转换为bytes数据类型

对于英文来说  

str 表现形式 str = 'alex'

  编码方式 01010101  unicode

bytes 表现形式 s = b’‘alex’  (前面加b表示)

    编码方式:00100100 utf-8 gbk  gk2312

对于中文来说

str 表现形式 str = '中国'

  编码方式 01010101  unicode

bytes 表现形式 s = b‘x\e91\e91\e01\e21\e31\e32’  (16进制)

    编码方式:00100100 utf-8 gbk  gk2312

str 转换 bytes 英文

  s1 = ‘alex’

       s11 = s1.encode('utf-8')

  print(s11)

str 转换bt\ytes 中文

  s2 = ‘中国’

  s22 = s2.encode('utf-8')

  print(s22 )

------------恢复内容结束------------

猜你喜欢

转载自www.cnblogs.com/longtongyu/p/12122672.html