自学Python--小知识点总结及编码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_41402059/article/details/82080322

python2有 xrange(),生成器

id()打印内存地址,is 比较内存地址

对于数字和字符串,小数据时(-5~256) 为了节省内存,同一个数字会使用同一个内存地址

a = 'a'
b = a
print(id(a)) # 2061289328288
print(id(b)) # 2061289328288
print(a is b) # True

编码:

ascii:1个字符 = 1个字节byte = 8位 bit

unicode:1个字符 = 4个字节 = 32位

utf-8:英文字符:1个字符 = 1个字节 = 8位

           中文字符:1个字符 = 3个字节 = 24位

gbk:英文字符:1个字符 = 1个字节 = 8位

         中文字符:1个字符 = 2个字节 = 16位

各个编码之间二进制不能互相识别,会乱码

文件的储存、传输不能是unicode,因为浪费空间

python3中 str在内存中以unicode存在,因此传输或储存需要进行str转换

bytes类型:非unicode编码,用来传输或者存储

因此unciode的str需要用encode()以utf-8等编码成bytes类型来进行存储或传输

对于英文:

    str: 表现形式:s = 'test'

          编码方式:01010101 unicode

    bytes 表现形式:s = b'test'

              编码方式:00000010 utf-8

对于中文:

    str 表现形式:s = '中国'

        编码方式:01010101 unicode

    bytes 表现形式:s = b'\xe4\xb8\xad\xe5\x9b\xbd'  每个\为一个字节,可见utf-8下一个中文3个字节

              编码方式:00000101 utf-8

转换:python3中  str类型只有encode()方法,bytes类型只有decode()方法

str.encode('utf-8') 

bytes.decode('utf-8')

猜你喜欢

转载自blog.csdn.net/weixin_41402059/article/details/82080322