python基础-06

is 和 == 的区别

is 比较的是内存地址

== 比较的是值

id(变量)  返回给你这个变量的内存地址

 

例子:s="周杰伦"

     s1=s

     print(id(s),id(s1))

     

特殊的: lst1=[1,4,7]

       lst2=[1,4,7]

       lst1.append("小白")

       print(lst1,lst2)

       print(id(lst1),id(lst2))  #内存地址不同

   

小数据池(常量池): 把我们使用过的值存储在小数据池中.供其他的变量使用.

小数据池给数字和字符串使用, 其他数据类型不存在.

对于数字: -5~256是会被加到小数据池中的. 每次使用都是同一个对象.

对于字符串:

1. 如果是纯文字信息和下划线. 那么这个对象会被添加到小数据池.

2. 如果是带有特殊字符的. 那么不会被添加到小数据池. 每次都是新的.

3. 如果是单一字母*n的情况. 'a'*20, 在20个单位内是可以的. 超过20个单位就不会添加到小数据池中.

 

注意(一般情况下): 在py文件中. 如果你只是单纯的定义一个字符串. 那么一般情况下都是会

被添加到小数据池中的. 我们可以这样认为: 在使用字符串的时候, python会帮我们把字符串

进行缓存, 在下次使用的时候直接指向这个字符串即可. 可以节省很多内存.

      

编码

ASCII    8bit 1byte  英文小写大写字母,特殊字符,数字

GBK       16bit 2byte  中文  兼容ASCII

UNICODE    32bit 4byte   万国码  占空间

UTF-8         UNICODE升级版   英文 1byte  中文 3byte

 

1. python2中默认使用的是ASCII码. 所以不支持中文. 如果需要在Python2中更改编码,需要在文件的开始编写:# -*- encoding:utf-8 -*-

2. python3中:内存中使用的是unicode码

 

传输过程中用UTF-8或者GBK.  

内存中,程序运行的过程中,编码是UNICODE.

 

在程序中,字符串可以编码成bytes类型的数据.

编码encode

编码之后的结果和原来的结果其实是一样的,只是看着不一样.

posted on 2018-06-06 16:42  I'm-BuBu  阅读(99)  评论(0编辑  收藏  举报