博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 小数据池,is and "==",decode ,encode
阅读量:6511 次
发布时间:2019-06-24

本文共 901 字,大约阅读时间需要 3 分钟。

一:小数据池

1.python运行中的缓存:

2.目的:缓存我们字符串,整数,布尔值。在使用的时候不需要创建过多的对象

3.python 缓存数据:缓存:int, str, bool、

                    int: 缓存范围 -5~256
                    str:
                1. 长度小于等于1,直接缓存
                2. 长度大于1. 字符串中如果只有数字, 字母, 下划线。 就会缓存
                3. 乘以1。 同上, 乘以大于1的数。仅包含数字,字母下划线。最终长度小于20会缓存
                4. 使用sys模块中的intern()缓存字符串
            代码块的关系:如果在同一个代码块中。默认的整数和字符串还有布尔值都会进行缓存. 如果涉及计算。尊崇上面的规则
            如果跨代码块,按照上面的规则执行的

 

二, is 和"=="的区别: is 是比较变量指向的内存地址是不是一致,"==" 比较的是变量的值是否一致

for E :   list1 = [1,2,3,4,5]

     list2 = [1,2,3,4,5]

            list1 == list2

    >>>True

    list1 is list2

    >>>False

"==", 比较的是两个变量赋予的值是不是相同: lis1 与list2 对应值 是一样的,

 is 说的是两个变量是不是一样:  list1 不是list2 , list1 增加值,list2 不会变

 

 

三:   编码转换  decode和encode 

        python3内存中使用的是unicode。
        unicode => utf-8  encode("utf-8")

     a =  "李白"

=>>转换成 utf-8编码     : a.encode("utf-8") 

        utf-8 => unicode  decode("utf-8")

  b = '\xe6\x9d\x8e\xe7\x99\xbd'

>>>用utf - 8解码=>  : b.decode('utf-8')

        utf-8和gbk不能直接转换
        bytes是字符串的另一种表示形式

 

转载于:https://www.cnblogs.com/tcpblog/p/9623012.html

你可能感兴趣的文章