is和==的区别以及编码和解码
一.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和==的区别以及编码和解码的更多相关文章
- python基础小知识,is和==的区别,编码和解码
1.is和==的区别 1)id() 通过id()我们可以查看到一个变量表示的值在内存中的地址 >>> s1 = "Tanxu" >>> s2 = ...
- python中is与==的区别,编码和解码
在介绍is与==的区别前,我们先来了解一些新的知识:内存地址.小数据池. 1.内存地址(is 比较的就是内存地址) 获取内存地址的方法:id() a = "str" 2.小数据池 ...
- is和==的区别以及编码、解码
一.is和==的区别 1,id( ) id( )是python的一个内置函数,通过id( )我们可以查看到一个变量表的值在内存中的地址: s1 = 2 print(id(s1)) # 15143680 ...
- ==和is的区别 以及编码和解码
is和==的区别 1. id() id是python的一个内置函数,通过id()可以查看变量表的值在内存中的地址. s1 = 2 print(id(s1)) # 1514368064 s2 = 2 p ...
- python全栈开发 随笔 'is' 和 == 的比较知识与区别 编码和解码的内容及转换
python 一. is 和 == 的区别; == 比较的是两边的值. a = 'alex' b = 'alex' print(a = b) #True a = 10 b = 10 print(a = ...
- is 与 == 的区别;小数据池; 编码与解码
1, is 与 == 的区别 == 比较的是两边的值 is 比较的是两边的地址 id () 2,小数据池(在终端中) 数字小数据池的范围 -5 ~ 256 字符串中如果有特殊字符他们的内存地址 ...
- Python is 和 == 的区别, 编码和解码
一.is 和 == 的区别 is : 进行比较,比较的是内存地址是否一致 ==:进行比较,比较的是值是否相等 1.小数据池: 数字小数据池范围 -5~256 字符串中如果有特殊字符则他们的内存地址不一 ...
- python is == 的区别, 编码与解码.深浅拷贝
一. is == 的区别 双等表示的是判断是否相等, 注意. 这个双等比较的是具体的值.而不是内存地址 is 比较的是地址 编码回顾 除了了ASCII码以外, 其他信息不能直接转换 编码和解码的时 ...
- python之is 和 == 的区别//编码和解码
一.is 和 == 的区别: 1 .id() 内存地址 2. == 比较 #比较两边的值 3. is 比较 #比较的是内存地址 数字,字符串,有小数据池 #数字小 ...
随机推荐
- 记录一下go web 文档
https://github.com/astaxie/build-web-application-with-golang
- git 合并本地分支到远程分支
第一种方法: git 快速合并本地分支到远程分支1.git branch -a 查看所有分支2.git checkout origin/分支名称3.git checkout 分支名称完成 ------ ...
- Vue 兄弟组件之间传递数值
Vue 兄弟组件之间传值 创建一个公用文件夹,在文件夹中设置一个事件处理中心,即 然后在需要设置值的组件中引入该事件处理中心 import Hub from '../../common/eventHu ...
- Python 内置函数 —— format
科学计数法: >> format(2**20, '.2e') '1.05e+06' 小数 ⇒ 百分数 >> format(.1234, '.1%') 12.3%
- dos命令查看端口状态
netstat 显示协议统计信息和当前 TCP/IP 网络连接. NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interva ...
- 3D场景中的鼠标响应事件
原文:3D场景中的鼠标响应事件 今天要讲的是3D场景中的鼠标响应事件的处理,首先Button的响应是大家熟知的,只要加上一个click事件,然后写一个响应的处理时间就行了.对于二维平面上的一些控件也很 ...
- easyui的datebox最简单的方法来格式化
看了网上有很多解决方案,我也写了一个比较简单的方法. 实现easyui的datebox格式化. 效果例如以下.用"++"隔开,看你喜欢用什么都能够. 1.html <span ...
- C++ 异常机制分析(C++标准库定义了12种异常,很多大公司的C++编码规范也是明确禁止使用异常的,如google、Qt)
阅读目录 C++异常机制概述 throw 关键字 异常对象 catch 关键字 栈展开.RAII 异常机制与构造函数 异常机制与析构函数 noexcept修饰符与noexcept操作符 异常处理的性能 ...
- Debian7离线升级bash漏洞—然后修复方法
### 昨天还说的传说要又一次出补丁,今天就都出来了.基本操作一致就是測试结果不一样.继续修复 Debian7 wheezy版本号的bash漏洞,例如以下操作: 1.測试是否须要升级 # env x= ...
- Emgu-WPF学习使用-识别二维码的位置
原文:Emgu-WPF学习使用-识别二维码的位置 参考链接:http://blog.csdn.net/gaobobo138968/article/details/47663607 我完全参 ...