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

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')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值