python基础(第六天),,今天主要对前段时间学


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

1、=、==、is和id()的区别:

1> =:赋值

技术分享图片
1 # a = 102 # b = a3 # print(id(a))  # 1407039394090084 # print(id(b))  # 1407039394090085 # 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 True11 >>>
View Code

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

python基础(第六天)

评论关闭