• 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")) #浣犲ソ
  • 相关阅读:
    电商项目(上)
    Java开发快速上手
    iOS 总结网页常用的东西
    osstatus -9801 workerman websocket 小程序不带端口
    ListView+EditText使用遇到的坑
    关于微信浏览器不支持offset()的兼容性处理
    关于TS返回 Can't use function return value in write context 问题
    tableView刷新中的问题
    解决 ecshop 搜索特殊字符关键字(如:*,+,/)导致搜索结果乱码问题
    新用户注册用户名可以被修改导致其他平台出现相关问题
  • 原文地址:https://www.cnblogs.com/qq849784670/p/9408160.html
Copyright © 2020-2023  润新知