zoukankan      html  css  js  c++  java
  • python中is与==的区别,编码和解码

      在介绍is与==的区别前,我们先来了解一些新的知识:内存地址、小数据池。

     1.内存地址(is 比较的就是内存地址)

        获取内存地址的方法:id() 

    1 a = "str"
    2 print(id(a)) #1526192138144

      2.小数据池

        数字小数据池的范围:-5~256

        str中如果有特殊字符他们的内存地址就不一样

        字符串中单个字符*20以内他么的地址就一样,单个*21以上内存地址就不一样

        *在pycha中一个py文件中所有相同的字符串,一般都是一个内存地址

    1 a = "a"*20
    2 b = "a"*20
    3 print(id(a),id(b)) #1994400322232 1994400322232
    1 a = "a"*21
    2 b = "a"*21
    3 print(id(a),id(b)) #2199798013576 2199798076088

      3.is 和 ==的区别

        is 比较的是内存地址

        ==比较的是两边的值

    1 a = "a"*21
    2 b = "a"*21
    3 print(id(a),id(b)) #1673345490568 1673345553008
    4 print(a == b) #True
    5 print(a is b) #False

      4.编码和解码

        encode(编码方式)    --拿到明文编码后对应的字节

        decode(编码方式)    --将编码后的字节解码成对应的明文

        *注意:用什么编码就要用什么解码(编码在前面有提到)

    1 a = "你好啊"
    2 print(a.encode("utf-8")) #b'xe4xbdxa0xe5xa5xbdxe5x95x8a'

        这里输出的结果就是用“utf-8”编码后输出的二进制数

    1 b = b'xe4xbdxa0xe5xa5xbdxe5x95x8a'
    2 print(b.decode("utf-8")) #你好啊

        如果解码方式与编码方式不同会报错,或者解析出来的东西并不是你一开始输入的

    1 a = "你好"
    2 print(a.encode("utf-8")) #b'xe4xbdxa0xe5xa5xbd'
    3 b = b'xe4xbdxa0xe5xa5xbd'
    4 print(b.decode("gbk")) #浣犲ソ
    1 a = "你好"
    2 print(a.encode("utf-8")) #b'xe4xbdxa0xe5xa5xbd'
    3 b = b'xe4xbdxa0xe5xa5xbd'
    4 print(b.decode("gbk")) #浣犲ソ
  • 相关阅读:
    Liunx基础优化配置
    Linux配置国内的Yum源
    Liunx配置静态IP
    百度前端学院|任务七
    java的远程访问接口的实例
    java套接字实现接口访问
    Mysql的链接超时异常CommunicationsException
    mysql查看和设置timeout 和批量杀死链接进程
    springmvc接受表单多条数据的值
    jquery获取点击标签内的子标签内容和值实例
  • 原文地址:https://www.cnblogs.com/qq849784670/p/9408160.html
Copyright © 2011-2022 走看看