python编码,赋值和is的区别

1. == 与 is 的区别

赋值 == 比较值是否相等,is 比较,比较的是内存地址。

小数据池的作用是节省内存空间

数字的范围:-5 到 256 共用一个数据池

字符串范围:1.不能有特殊字符。2. s*20还是同一个地址,超过以后就是不用地址  3.不同字符超过20仍然is

剩下的 列表,元祖等没有小地址池

2. python3中的编码

ascii
    一个字符1个字节,占8位
    A:00000010

unicode
    一个字符4个字节,占32位
    A:00000000 00000001 00000010 00000010
    中:

utf-8
    一个英文字符,8位
    一个中文字符,占24位

gbk
    A:一个字符,8位
    中:一个中文字符,16位

    1.各个编码2 进制不能识别,会产生乱码
    2.文件的存储和传输不能是unicode

3.python中的bytes类型

'''
对于英文:
    str:    
            表现形式: s = 'alex'
            编码方式: 01010101  unicode
    bytes:
            表现形式: s = b'alex'
            编码方式: 01010101  utf-8 gbk
    
对于中文:
    str:    
            表现形式: s = '中国'
            编码方式: 01010101  unicode
    bytes:
            表现形式: s = b'xe91e91e01e21e31e32' 3字节表示一个中文,utf-8;若2个字节1个汉字,gbk
            编码方式: 01010101  utf-8 gbk
    
'''
s1 = 'alex'
# 将 unicode 转换成utf-8 或gdk,表现形式是将str 转换成bytes,
# encode 编码,如何将str --> bytes,
s11 = s1.encode('utf-8')
print(s11)
原文地址:https://www.cnblogs.com/jiuyachun/p/10308890.html