一.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. mac下装php5.6

    OS X10.11自带了php5.5,项目中使用的是php5.6,用brew install --without-apache --with-fpm --with-mysql php56装php5.6 ...

  2. java中判断字符串中是否有中文字符

    package com.meritit.test; public class TestChart { public static void main(String[] args) throws Exc ...

  3. 10.24的注意事项——解决linux_jni编译错误的问题

    公司以opus开源库.因此,我们遇到了一些问题. 我将新下载的opus1.1替换掉老版本号之后,单独编译opus没问题.但是编译相关的文件就会报错. 错误信息例如以下: g++ -Wall -fPIC ...

  4. Ueditor 在.net core 中的使用

    参考模仿了 https://blog.csdn.net/qq_34220236/article/details/80581811 这篇文章 要注意的是,去ueditor官网下的包,大多不可用. 要自己 ...

  5. zcelib - One cplusplus C++ crossplatform library use for develop server,similar to ACE.

    zcelib - One cplusplus C++ crossplatform library use for develop server,similar to ACE.OS适配层,为了适应WIN ...

  6. LeetCode 36 Sudoku Solver

    Write a program to solve a Sudoku puzzle by filling the empty cells. Empty cells are indicated by th ...

  7. XF 标签和文本控件

    <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http:/ ...

  8. JAVASCRIPT高程笔记-------第十章 DOM对象

    10.1.1 node类型 --除IE外 所有浏览器都可以访问到这个类型 :JS中所有的节点类型都继承自Node类型 nodeName 与nodeValue  如果是一个元素 那么nodeName中保 ...

  9. MeasureOverride 和 ArrangeOverride

    原文:MeasureOverride 和 ArrangeOverride FrameworkElement.MeasureOverride方法实现当在派生类中重写时,测量子元素在布局中所需的大小,然后 ...

  10. Win8Metro(C#)数字图像处理--2.4图像颜色聚类

    原文:Win8Metro(C#)数字图像处理--2.4图像颜色聚类  [函数名称] 图像颜色聚类函数ClusterProcess(WriteableBitmap src,int value) [算 ...