zoukankan      html  css  js  c++  java
  • 【python】is和==的区别以及encode()和decode()

    is和==的区别:

      要知道is和==的区别,我们先来了解一下id()方法,id方法的返回值就是对象的内存地址,简单来说就是这个会给我们一堆看不懂的数值

    element = '杰伦哥'
    print(id(element))

      程序运行结果: 1936055642416

      事实证明,这就是一堆数字,我们是真的看不懂

      为什么要提到这个?因为接下来我要说的is和==的区别就和这个有关

      我们都知道 == 是用来比较的两个对象是否相等的,但是is呢?其实is就是用来比较两个对象是否相同(注意,这里是相同),而且is是更深层次的比较,是直接比较内存地址

      为了提高内存利用率,对于一些简单的int对象和简单的str对象,python采取重复使用对象内存的方法,这样python就不会两次为那些简单的对象分配内存,而是只分配一次

    a = 2
    b = 2
    print(a is b)

      结果: True

    encode()和decode():

      从字面意思上来看,encode和decode分别是编码和解码.在python中,默认的编码方式是Unicode,即:

         decode                 encode
    str ---------> str(Unicode) ---------> str
    u = '文字'          # 指定字符串类型对象u 
    str2 = u.encode('gbk')    # 以gbk编码对u进行编码,获得bytes类型对象
    print(str2) 输出结果: b'xcexc4xd7xd6'

    str3 = u.encode('utf-8')  # 以utf-8编码对u进行编码,获得bytes类型对象
    print(str3) 输出结果: b'xe6x96x87xe5xadx97'


    u1 = str2.decode('gbk')  # 以gbk解码str2
    print(u1)
    输出结果: 文字


    u2 = str3.decode('utf-8')  #以utf-8解码str3
    print(u2)
    输出结果: 文字

      

  • 相关阅读:
    21. 斐波那契数列
    22. 旋转数组的最小数字
    php图像处理链接
    FileOprSer.class.php(文件上传与下载类)
    SqlHelper.class.php+分页类方法
    file写入方式 和copy
    file 读取方式
    pytest+allure+jenkins 持续集成平台生成allure报告
    memcached cas操作
    php-fpm
  • 原文地址:https://www.cnblogs.com/knowledgeYang/p/9285993.html
Copyright © 2011-2022 走看看