• 小数据池,编码,is与==的区别


    #小数据池
    a = [1,2,2,13,123,123,12,3,12,3,12,312,3,12,32,13,12,3,21]
    b = a # 明天深浅拷贝
    
    # 内存地址 id()
    print(id(a))
    print(id(b))
    
    a = 1000
    print(id(a))  # 内存的开辟是由解释器来完成的.
    
    
    # 双胞胎
    # == 比较的是值(内容)  True
    # is 比较的是内存地址(是不是同一个对象) False
    
    lst1 = [1,2,3]
    lst2 = [1,2,3]
    print(lst1 == lst2) # 长得一样
    print(lst1 is lst2) # 不是同一个对象
    
    
    a = "alex"
    b = "alex"
    print(a == b)
    print(a is b) # 在python中, 默认会把数字, 字符串, 布尔值进行缓存
    
    # 1.当我们在控制台的时候, 代码块与代码块之间的规则:
    #     1. 数字:  -5 ~ 256之间的整数会被缓存
    #     2. 字符串:
    #         长度小于等于1 会默认缓存
    #         长度大于1 如果字符串中只有数字, 字母下换线缓存
    #         乘法得到的字符串:
    #             1. 如果乘数是1. 和上面两个方案一致
    #             2. 乘数不是1. 最终长度不能超过20
    #         手动指定缓存  from sys import intern intern()制定缓存的内容
    #      3. 布尔值
    # 2. py文件里. 一个代码块内部. 只会缓存int, str, bool 也有自己的小数据池。 缓存的范围会比外面的代码块的数据池要大
    #       1. 数字。都会缓存。 运算的结果不缓存(-5~256 会缓存)
    #       2. 字符串。 默认的字符串都缓存. 如果有乘法。 遵循上方的结论
    #       3. 布尔值。 默认缓存
    
    
    a = "alex@sb.com" # 5
    b = "alex@sb.com" # 1
    #编码
    '''
    1. ASCII: 8bit 1byte 英文字母 数字 特殊字符.
    2. GBK: 16bit 2byte 主要是存中文。日文, 韩文, 繁字体。 中文的特殊字符  中国 (abcd)
    3. UNICODE: 32bit 4byte
    4. UTF-8: 可变长度的unicode
        英文: 8bit, 1byte
        欧洲文字:16bit, 2byte
        中文: 24bit, 3byte  (abcd)
    GBK和UTF-8不能直接互换
    转码
    '''
    # 在python2里面. 默认的编码是ASCII
    # 在python3中unicode是可以使用的。 默认用的就是Unicode. 代码用utf-8来存储
    
    #  如果用unicode存储, 如果用utf-8
    # s = "你好啊"   # 看到的就是unicode
    # print(s)
    
    # 1. 编码. 把unicode转换成utf-8
    # s = "刘伟很皮" # 12个字节
    # abc = s.encode("UTF-8")  # encode之后的结果是bytes类型  依然是原来的字符串
    # print(abc)  # b'数据'
    
    # 解码
    # abc = b'xe5x88x98xe4xbcx9fxe5xbex88xe7x9axaf'
    # s = abc.decode("UTF-8") # 解码。 用什么编码, 就用什么解码
    # print(s)
    
    # s = "赵瑞鑫"
    # print(s.encode("GBK"))
    # bs = b'xd5xd4xc8xf0xf6xce'
    # print(bs.decode("GBK")) # GBK的编码不能用UTF-8解码
    
    # GBK的编码. 把这句话变成UTF-8
    # bs = b'xd5xd4xc8xf0xf6xce'
    # # 先解码
    # s = bs.decode("GBK")
    # # 重新编码
    # bs2 = s.encode("UTF-8")
    # print(bs2)
    

      

  • 相关阅读:
    爬虫解析库:XPath
    手写一个小型打包构建工具
    Python网络爬虫神器PyQuery的使用方法
    人脸识别JavaScript也可以轻松搞定
    颜值即正义!这几个库颠覆你对数据交互的想象
    微信朋友圈自动点赞
    android studio的安装信息
    Docker使用笔记
    C语言联合
    Mac之Sublime Text使用Go
  • 原文地址:https://www.cnblogs.com/PythonMrChu/p/9621990.html
Copyright © 2020-2023  润新知