zoukankan      html  css  js  c++  java
  • 第六天 is 和 == 的区别, 编码的问题

    一.id()函数

      Id()函数 :通过id()查看一个变量表示的值在内存中的地址

       

       id值相同是应为在程序运行中产生了数据池,会对字符串和整数进行缓存, 为了节省内存。但其他类型(列表,数组,字典)不存在

    对于数字:
      -5 —— 256是会被加到小数据池中的. 每次使用都是同一个对象.
    对于字符串:
      1. 如果是纯文字信息和下划线. 那么这个对象会被添加到小数据池
      2. 如果是带有特殊字符的. 那么不会被添加到小数据池. 每次都是新的
      3. 如果是单一字母*n的情况. 'a'*20, 在20个单位内是可以的. 超过20个单位就不会添加到小数据池中
    注意:
        (一般情况下): 在py⽂文件中. 如果你只是单纯的定义一个字符串. 那么一般情况下都是会被添加到小数据池中的.
    我们可以这样认为: 在使用字符串的时候, python会帮我们把字符串进行缓存, 在下次使用的时候直接指向这个字符串即可.
    可以节省很多内存.
    is 和 id的关系:     
        is比较的就是id()计算出来的结果. 由于id是帮我们查看某数据(对象) 的内存地址. 那么is
    比较
        的就是数据(对象)的内存地址.最终我们通过is可以查看两个变量使⽤的是否是同一个对象.

    二.is 和 == 区别

        ==      :判断左右两端是否相等和一致,比较的是内容

        is       : 判决的是内存地址是否相等  用id()的值来判断

       

    三,编码的补充

      想要储存,必须先编码 

    1. python2中默认使用的是ASCII码,所以不支持中文,如果需要在python2中更改编码。

        Python2 转换为python3的编码,在python2前面加  -*- encoding:utf-8 -*-  

       2.python3中:内存中使用的unicode

      encode()   编码:获取到的是编码之后的结果。编码之后的内容是bytes类数据类型

                      英文:编码之后的结果是英文本身

                      中文:编码之后UTF – 8下,一个中文3个字节

      Decode()   解码:把bytes数据类型编程我们熟悉的字符串

      

      

     
     


  • 相关阅读:
    函数表达式
    BOM
    让超出容器高度的内容滚动显示但不出现滚动条
    插件书写示例
    php中redis的安装
    日常工作bug总结
    pip freeze requirements.txt命令迁移模块
    Django18-中间件和cache实现限制用户访问频率
    Django17-文件上传下载
    Django16-cache缓存
  • 原文地址:https://www.cnblogs.com/mwhylj/p/9304714.html
Copyright © 2011-2022 走看看