zoukankan      html  css  js  c++  java
  • 06 day小数据池

    1.小数据池,id()
    小数据池针对的是: int ,str,bool-----都是不可变的数据类型
     a.int 类型
    a = 1000
    b = 1000
    print(id(a), id(b))  # 165830000 165830000
    b. 字符串,如果单纯的鞋字符串,几乎都会被缓存
    s1 = "alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事"
    # s2 = "alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事"
    #
    print(id(s1), id(s2)) # 31222064 31222064
    在py文件中几乎所有的字符串都会缓存,在cmd黑窗口里的几乎都不会缓存,不同的解释器,缓存的机制也不一样
    优点:可以帮我们快速的创建对象. 节省内存
    缺点: 缓存如果过大.响应速度会比较慢
    id()函数可以帮我们查看一个变量的内存地址
    a = 10
    b = 30
    print(id(a))  # 1515545088
    print(id(b))  # 1515545728
    两个对象值一样,但是对应的内存地址是不一样的
    1 = [1,2,3] # 两个对象 内存地址是不一样的
    lst2 = [1,2,3]
    print(id(lst1)) # 166167624
    print(id(lst2)) # 166122376
    2.is 和==的区别 
    == 比较的是数据,外贸的
    is    比较的是内存地址,比较的内在的,如:比较的身份证号
    # lst1 = [1,2,3]
    # lst2 = [1,2,3]
    # # 列表没有小数据池
    # print(id(lst1), id(lst2)) #  166167560 166126408
    # print(lst1 == lst2) # True
    # print(lst1 is lst2) # False
    #
    # s1 = "我叫周润发"
    # s2 = "我叫周润发"
    # print(s1 == s2)
    # print(s1 is s2) # 小数据池
     
    # tu1 = ("周一", "周二")
    # tu2 = ("周一", "周二")
    # print(tu1 is tu2) # 地址不相等 False
    # print(tu1 == tu2) # 内容相等 True
    3.再谈编码
       encode(编码格式)  编码   
       decode(编码格式)  解码
    s = "我今天非常的困" # 21个utf-8
    bs = s.encode("gbk") # 把字符串转化成utf-8格式bytes
    # bytes不是给人看的. 给机器用的
    # 14个字节   gbk
    b'xcexd2xbdxf1xccxecxb7xc7xb3xa3xb5xc4xc0xa7'
    # 21个字节   utf-8
    b'xe6x88x91xe4xbbx8axe5xa4xa9xe9x9dx9exe5xb8xb8xe7x9ax84xe5x9bxb0'
    print(bs)
    utf - 8和 gbk是不能直接转换的,必须使用unicode来转换
    bs = b'xe6x88x91xe4xbbx8axe5xa4xa9xe9x9dx9exe5xb8xb8xe7x9ax84xe5x9bxb0'
    # 把字节转化回字符串
    s = bs.decode("utf-8")
    print(s)
    b'xe6x88x91xe4xbbx8axe5xa4xa9xe9x9dx9exe5xb8xb8xe7x9ax84xe5x9bxb0'
    把这个bytes转化成gbk的bytes
    bs = b'xe6x88x91xe4xbbx8axe5xa4xa9xe9x9dx9exe5xb8xb8xe7x9ax84xe5x9bxb0'
    # 解码
    s = bs.decode("utf-8")
    print(s)
     
    # 编码
    bss = s.encode("gbk")
    print(bss)
    关于bytes,非ascii中的内容,展示的时候都是x..     如果是ascii中的内容,原样的输出.
    name = "alex昨天吃多了"
    bs = name.encode("gbk") # b'alexxd7xf2xccxecxb3xd4xb6xe0xc1xcb'
    print(bs)
     
    bss = name.encode("utf-8") # b'alexxe6x98xa8xe5xa4xa9xe5x90x83xe5xa4x9axe4xbax86'
    print(bss)
     
  • 相关阅读:
    精简的网站reset 和 css通用样式库
    bootstrap使用心得及css模块化的初步尝试
    如何更高效地定制你的bootstrap
    OOCSS的概念和思路
    圣杯布局和双飞翼布局的作用和区别
    espcms简约版的表单,提示页,搜索列表页
    Sublime快捷键
    JavaScript——理解闭包及作用
    JavaScript——基本的瀑布流布局及ajax动态新增数据
    JavaScript——之对象参数的引用传递
  • 原文地址:https://www.cnblogs.com/yanghongtao/p/10060852.html
Copyright © 2011-2022 走看看