一.is和==的区别

python中对象包含的三个基本要素分别是:id(身份标识),type(数据类型),value(值)

is和==都是对对象进行比较判断的,但对对象比较判断的内容不同.

★==是python标准操作符中的比较操作符,用来判断两个对象的value是否相等.

如:

 a=6/2
b=3
print(a==b) #True

★is也被叫做同一性运算符,这个运算符比较判断的是对象的身份标识(id)是否相同,

如:

 x=[4,5,6]
y=[4,5,6]
print(x is y) #False 因为x和y的id不同
 a=1        #a和b是int型
b=1
print(a is b) #True
print(id(a)) #
print(id(b)) # a='qwert' #a和b是字符串型
b='qwert'
print(a is b) #True
print(id(a)) #
print(id(b)) # a=(1,2,3,4) #a和b是元组类型
b=(1,2,3,4)
print(a is b) #False
print(id(a)) #
print(id(b)) # a=[1,2,3,4] #a和b是列表类型
b=[1,2,3,4]
print(a is b) #False
print(id(a)) #
print(id(b)) # a= {'a':1,'b':2} #a和b是字典类型
b={'a':1,'b':2}
print(a is b) #False
print(id(a)) #
print(id(b)) #

is只有int和str类型的情况下,a is b才是True,其他类型时,a是False.

同时在int和str类型的时候也有一些限制

int型小数据池的范围是:-5~256

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

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

二.编码和解码

字符串在Python内部的表示是Unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

decode('码')     字节  ==>  明文     把括号中的原码转换成unicode中明文

encode('码')     明文  ==>  字节     把unicode中的明文转换成括号中的原码

 a=("移花接木你肌瘤")             #unicode下的明文
print(a.encode('gbk')) #把unicode下的明文转换成了gbk下的原码 b'\xd2\xc6\xbb\xa8\xbd\xd3\xc4\xbe\xc4\xe3\xbc\xa1\xc1\xf6'
a1=a.encode('gbk')
print(a1.decode('gbk')) #把gbk下的原码转换成了unicode下的明文 移花接木你肌瘤
a2=a1.decode('gbk')
print(a2.encode('utf-8')) #把unicode下的明文转换成了utf-8下的原码 b'\xe7\xa7\xbb\xe8\x8a\xb1\xe6\x8e\xa5\xe6\x9c\xa8\xe4\xbd\xa0\xe8\x82\x8c\xe7\x98\xa4'
a3=a2.encode('utf-8')
print(a3.decode('utf-8')) #把utf-8下的原码转换成了unicode下的明文 移花接木你肌瘤

is和==的区别以及编码和解码的更多相关文章

  1. python基础小知识,is和==的区别,编码和解码

    1.is和==的区别 1)id() 通过id()我们可以查看到一个变量表示的值在内存中的地址 >>> s1 = "Tanxu" >>> s2 = ...

  2. python中is与==的区别,编码和解码

    在介绍is与==的区别前,我们先来了解一些新的知识:内存地址.小数据池. 1.内存地址(is 比较的就是内存地址) 获取内存地址的方法:id() a = "str" 2.小数据池 ...

  3. is和==的区别以及编码、解码

    一.is和==的区别 1,id( ) id( )是python的一个内置函数,通过id( )我们可以查看到一个变量表的值在内存中的地址: s1 = 2 print(id(s1)) # 15143680 ...

  4. ==和is的区别 以及编码和解码

    is和==的区别 1. id() id是python的一个内置函数,通过id()可以查看变量表的值在内存中的地址. s1 = 2 print(id(s1)) # 1514368064 s2 = 2 p ...

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

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

  6. is 与 == 的区别;小数据池; 编码与解码

    1, is 与 == 的区别 ==  比较的是两边的值 is   比较的是两边的地址  id () 2,小数据池(在终端中) 数字小数据池的范围 -5 ~ 256 字符串中如果有特殊字符他们的内存地址 ...

  7. Python is 和 == 的区别, 编码和解码

    一.is 和 == 的区别 is : 进行比较,比较的是内存地址是否一致 ==:进行比较,比较的是值是否相等 1.小数据池: 数字小数据池范围 -5~256 字符串中如果有特殊字符则他们的内存地址不一 ...

  8. python is == 的区别, 编码与解码.深浅拷贝

    一. is  ==  的区别 双等表示的是判断是否相等, 注意. 这个双等比较的是具体的值.而不是内存地址 is 比较的是地址 编码回顾 除了了ASCII码以外, 其他信息不能直接转换 编码和解码的时 ...

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

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

随机推荐

  1. Android推送服务——百度云推送

    一.推送服务简介 消息推送,顾名思义,是由一方主动发起,而另一方与发起方以某一种方式建立连接并接收消息.在Android开发中,这里的发起方我们把它叫做推送服务器(Push Server),接收方叫做 ...

  2. Arcgis api for javascript学习笔记(4.5版本)-三维地图的飞行效果

    其实就只是用到了 view.goTo()  函数,再利用 window.setInterval()  函数(定时器)定时执行goTo().代码如下: <!DOCTYPE html> < ...

  3. asp.net中C#调用存储过程

    创建存储过程: create procedure houseCount ( ), @house_count int output ) as select @house_count=COUNT(*) f ...

  4. Android官方教程翻译(2)——运行第一个程序

    转载请注明出处:http://blog.csdn.net/dawanganban/article/details/9823623 Running Your App PREVIOUSNEXT THIS ...

  5. xcode代码统计行

    输入端子 cd 通路 进入项目根文件夹 输入以下的命令.显示总行数(不包括空行.包括凝视和应用第三方类) find . -name "*.m" -or -name "*. ...

  6. WPF中的3D特性和常见的几个类

    原文:WPF中的3D特性和常见的几个类 WPF 3D 常用的几个类及其关系 1.  Visual 类      所有二维可视化元素的基类,为 WPF 中的呈现提供支持,其中包括命中测试.坐标转换和边界 ...

  7. 格式字符串分配stl::string

    代码非常easy,不解释,直接在代码: #include <cstdio> #include <cstdarg> #include <iostream> using ...

  8. 计算机程序设计的史诗TAOCP

    倘若你去问一个木匠学徒:你需要什么样的工具进行工作,他可能会回答你:“我只要一把锤子和一个锯”.但是如果你去问一个老木工或者是大师级的建筑师,他会告诉你“我需要一些精确的工具”.由于计算机所解决的问题 ...

  9. 【树转数组】poj1195

    /* 二维的树状数组: 更新某个元素时: NO.1:c[n1],c[n2],c[n3],....,c[nm]; 当中n1 = i,n(i+1) = ni+lowbit(ni); nm+lowbit(n ...

  10. js调查server

    <script type="text/javascript"> function showUnreadNews() { $(document).ready(functi ...