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

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

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

 a = "str"
print(id(a)) #

2.小数据池

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

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

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

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

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

3.is 和 ==的区别

    is 比较的是内存地址

    ==比较的是两边的值

 a = "a"*21
b = "a"*21
print(id(a),id(b)) #1673345490568 1673345553008
print(a == b) #True
print(a is b) #False

4.编码和解码

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

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

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

 a = "你好啊"
print(a.encode("utf-8")) #b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x95\x8a'

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

 b = b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x95\x8a'
print(b.decode("utf-8")) #你好啊

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

 a = "你好"
print(a.encode("utf-8")) #b'\xe4\xbd\xa0\xe5\xa5\xbd'
b = b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(b.decode("gbk")) #浣犲ソ
 a = "你好"
print(a.encode("utf-8")) #b'\xe4\xbd\xa0\xe5\xa5\xbd'
b = b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(b.decode("gbk")) #浣犲ソ

python中is与==的区别,编码和解码的更多相关文章

  1. python之is 和 == 的区别//编码和解码

    一.is  和  ==  的区别: 1  .id()   内存地址 2.  ==   比较    #比较两边的值 3.   is    比较   #比较的是内存地址 数字,字符串,有小数据池 #数字小 ...

  2. 【转】Python中的字符串与字符编码

    [转]Python中的字符串与字符编码 本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常 ...

  3. Python中__repr__和__str__区别

    Python中__repr__和__str__区别 看下面的例子就明白了 class Test(object): def __init__(self, value='hello, world!'): ...

  4. python中// 和/有什么区别

    python中// 和/有什么区别 通常C/C++中,"/ " 算术运算符的计算结果是根据参与运算的两边的数据决定的,比如: 6 / 3 = 2 ; 6,3都是整数,那么结果也就是 ...

  5. PHP中对汉字进行UNICODE编码和解码的实现

    <?php /** PHP中对汉字进行UNICODE编码和解码的实现 **/ class Helper_Tool{ //php中的unicode编码转中文 static function uni ...

  6. Python中的字符串与字符编码

    本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常谈的话题,同行们都写过很多这方面的文章. ...

  7. python全栈开发 随笔 'is' 和 == 的比较知识与区别 编码和解码的内容及转换

    python 一. is 和 == 的区别; == 比较的是两边的值. a = 'alex' b = 'alex' print(a = b) #True a = 10 b = 10 print(a = ...

  8. 浅析Python中bytes和str区别

    本博转载自:Chown-Jane-Y的浅析Python3中的bytes和str类型 Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示, ...

  9. 2018.8.2 python中is和==的区别

    一.is 和==的区别 1.is 比较的是左右两边的内存地址, ==比较的是左右两边的值. 2.id() 通过id()可以查看一个变量表示的值得内存中的地址. s = 'alex' s1 = 'ale ...

随机推荐

  1. 虚拟机性能监控与故障处理工具(深入理解java虚拟机三)

    JDK自带的工具可以方便的帮助我们处理一些问题,包括查看JVM参数,分析内存变化,查看内存区域,查看线程等信息. 我们熟悉的有java.exe,javac.exe,javap.exe(偶尔用),jps ...

  2. (一)linux 学习 -- 在文件系统中跳转

    The Linux Command Line 读书笔记 - 部分内容来自 http://billie66.github.io/TLCL/book/chap03.html 文章目录 文件系统 根目录 打 ...

  3. 用selenium控制已打开的浏览器

    在使用selenium进行自动化测试会遇到,手工打开浏览器,做了一部分操作后,并打开相关页面后再执行相关的自动化脚本. 如何使用selenium来接管先前已打开的浏览器呢?醍提出一个Google Ch ...

  4. windows Git Bash 无法运行python文件的解决方法(转)

    https://blog.csdn.net/xie_0723/article/details/51958243

  5. App客户端性能测试点总结

    一.内存 测试范围1. 空闲状态下的应用内存消耗情况2. 中等规格状态下的应用内存消耗情况3. 满规格状态下的应用内存消耗情况4. 应用内存峰值情况5. 应用内存泄露情况6. 应用是否常驻内存7. 压 ...

  6. VS.NET(C#-2.5)_简单例子(所有控件都转换成HTML控件)

    简单例子 UI设计视图  UI代码视图 <% @PageLanguage="C#" AutoEventWireup="true"CodeFile=&quo ...

  7. .NET Framework 4安装问题

    1.安装时,系统提示:运行此安装程序之前,必须安装 32 位 Windows 映像处理组件(WIC). http://www.microsoft.com/downloads/zh-cn/details ...

  8. Matlab匿名函数,向量化和预分配,函数的函数,P码文件

    匿名函数: 匿名函数是不存储在程序文件中.但与数据类型是 function_handle 的变量相关的函数.匿名函数可以接受输入并返回输出,就像标准函数一样.但是,它们可能只包含一个可执行语句. 例如 ...

  9. JVM性能优化--类加载器,手动实现类的热加载

    一.类加载的机制的层次结构 每个编写的".java"拓展名类文件都存储着需要执行的程序逻辑,这些".java"文件经过Java编译器编译成拓展名为". ...

  10. lumen中安装及使用redis作为cache

      1.安装redis模块在compose.json的require中添加 "predis/predis": "*","illuminate/redi ...