zoukankan      html  css  js  c++  java
  • 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()
    编码之后的结果和原来的结果其实是一样的东西,只是看着不一样

  • 相关阅读:
    小知识,大应用--正交向量在CDMA中的运用
    翻译:做好iPhone程序的10点建议
    解决了对多层结构一些疑惑,整理一下!
    原来是这样的——生活中的随笔
    3.14..............
    基础 - 结构
    推荐一本书《我编程,我快乐》
    基础 - 异常处理
    今天发现一个以前写的管理代码片段的程序,把源码发出来!
    VNC快速教程
  • 原文地址:https://www.cnblogs.com/qianzhewoniuqulvxing/p/9145333.html
Copyright © 2011-2022 走看看