• day_6


    1. is 和 == 的区别:
    id(变量)返回给你这个变量的内存地址.

    s = 'alex'
    print(id(s)) # 4326667072
    s = "alex"
    print(id(s)) # 4326667072

    lst = [1, 2, 4]
    print(id(lst)) # 4326685768
    lst1 = [1, 2, 4]
    print(id(lst1)) # 4326684360

    我们发现. 字符串的数据地址是一样的. 而列表的数据地址是不一样的.

    小数据池(常量池): 把我们使用过的值存储在小数据池中.供其他的变量使用.
    小数据池给数字和字符串使用, 其他数据类型不存在.
    对于数字: -5~256是会被加到小数据池中的. 每次使用都是同一个对象.

    对于字符串:
    1. 如果是纯文字信息和下划线. 那么这个对象会被添加到小数据池
    2. 如果是带有特殊字符的. 那么不会被添加到小数据池. 每次都是新的
    3. 如果是单一字母*n的情况. 'a'*20, 在20个单位内是可以的. 超过20个单位就不会添加
    到小数据池中


    注意(一般情况下): 在py文件中. 如果你只是单纯的定义一个字符串. 那么一般情况下都是会
    被添加到小数据池中的. 我们可以这样认为: 在使⽤字符串的时候, python会帮我们把字符串
    进⾏缓存, 在下次使⽤的时候直接指向这个字符串即可. 可以节省很多内存.


    is 比较是的内存地址 注意. 这个双等比较的是具体的值.而不是内存地址

    s1 = "哈哈"
    s2 = "哈哈"
    print(s1 == s2) # True
    print(s1 is s2) # True 原因是有⼩数据池的存在 导致两个变量指向的是同⼀个对象
    l1 = [1, 2, 3]
    l2 = [1, 2, 3]
    print(l1 == l2) # True, 值是⼀样的
    print(l1 is l2) # False, 值是假的

    == 比较的是值

    2. 编码
    ASCII 8bie 1byte 英文小写大写字母 特殊字符 数字
    GBK 16bie 2byte 中文 兼容ASCII
    UNICODE 32bie 4byte 万国码 占空间 浪费
    UTF-8 是unicod的升级版 英文 1bety 中文3 bety

    传输过程中用:UTF-8或者GBK,unicod 浪费资源
    存货中,我们程序运行的过程中, 编码是unicode
    转换的时候 GBK不能和UTF-8相互转换.

    在程序中,字符串可以编码成bytes类型的数据
    编码encode()
    编码之后的结果和原来的结果其实是一样的东西,只是看着不一样

  • 相关阅读:
    串口打印信息
    网上下的ARM入门笔记
    职业生涯规划之驱动开发笔试题
    哈佛学生是如何度过大学4年的
    9G忠告打基础
    新塘M0Timer定时器篇
    ARM裸机篇按键中断
    linux驱动面试题
    裸机程序循环加法操作
    ARM裸机篇串口UART实验
  • 原文地址:https://www.cnblogs.com/qianzhewoniuqulvxing/p/9145333.html
Copyright © 2020-2023  润新知