python基础(第六天)

今天主要对前段时间学习的知识进行总结,有以下几个地方需要注意:

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
View Code

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 >>>
View Code

3> is:判断的是内存地址是否相同

4> id():计算内存地址

注意:由于数字和字符串有小数据池的概念,上述四个符号运算的结果可能不是定义中的结果,其它如列表、元祖、字典等没有小数据池的概念,运算结果为定义中的结果。

2、编码方式:

1>ascii:8位,一个字节;

2>unicode:32位,无论英文还是中国,都是四个字节,占用空间太大,python3中的str在内存中默认使用unicode编码;

3>utf-8: 一个英文一个字节,一个中文三个字节;

扫描二维码关注公众号,回复: 4958669 查看本文章

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").

猜你喜欢

转载自www.cnblogs.com/eric818/p/10284727.html