标签:符号 编码 内存地址 学习 ... opened 空间 字符串 str
今天主要对前段时间学习的知识进行总结,有以下几个地方需要注意:
1、=、==、is和id()的区别:
1> =:赋值
1 # a = 10 2 # b = a 3 # print(id(a)) # 140703939409008 4 # print(id(b)) # 140703939409008 5 # print(a is b) # True
2> ==:比较运算符,比较的是值是否相等
1 >>> a = 1000 2 >>> b = 1000 3 >>> print(id(a)) 4 1710276102032 5 >>> print(id(b)) 6 1710276523504 7 >>> print(a is b) 8 False 9 >>> print(a == b) 10 True 11 >>>
3> is:判断的是内存地址是否相同
4> id():计算内存地址
注意:由于数字和字符串有小数据池的概念,上述四个符号运算的结果可能不是定义中的结果,其它如列表、元祖、字典等没有小数据池的概念,运算结果为定义中的结果。
2、编码方式:
1>ascii:8位,一个字节;
2>unicode:32位,无论英文还是中国,都是四个字节,占用空间太大,python3中的str在内存中默认使用unicode编码;
3>utf-8: 一个英文一个字节,一个中文三个字节;
4>gbk: 一个英文一个字节,一个中文两个字节,中文不够用
注意:文件的存储和传输不能用unicode编码,因此,字符串str需要将其转化为bytes后方可进行存储和传输。
对于英文:
str: 表现形式:s = "abc"
编码方式:0101 unicode
bytes: 表现形式:s = b"abc"
编码方式:0101 utf-8/gbk...
对于中文:
str: 表现形式:s = "中国"
编码方式:0101 unicode
bytes: 表现形式:s = b"x\e91\e85\e88\e99\e83\e86"
编码方法: 0101 uft-8/gbk...
在文件操作中,需要将str转化为bytes类型,转化方法为:str.encode("uft-8").
标签:符号 编码 内存地址 学习 ... opened 空间 字符串 str
原文地址:https://www.cnblogs.com/eric818/p/10284727.html