2018.8.2 python中is和==的区别
一、is 和==的区别
1、is 比较的是左右两边的内存地址, ==比较的是左右两边的值。

2、id()
通过id()可以查看一个变量表示的值得内存中的地址。
s = 'alex'
s1 = 'alex'
print(id(s)) #
print(id(s1)) # lst = [1,2,4]
lst1 = [1,2,4]
print(id(lst)) #
print(id(lst1)) #
字符串,部分数字的数据地址是一样的,而列表,元组,字典的数据地址是不一样的,这是因为python中有一个小数据池的存在。 3、小数据池
小数据池(常量池):把我们使用过的值存储在小数据池中,供其他的变量使用。
小数据池给数字和字符串使用,其它数据类型不存在。
对于数字:
-5~256是会被加到小数据池中的,每次使用都是同一个对象。
对于字符串:
1)如果是纯文字信息和下划线,那么这个对象会被添加到小数据池
2)如果是带有特殊字符的,那么不会被添加到小数据池,每次都是新的
3)如果是单一字母*n的情况,a*20,在20个单位内是可以的,超过20个单位就不会添加到小数据池中。 二、编码和解码
注意:在python2中默认使用的是ASCII码,不支持中文,如果需要在python2中更改编码需要在文件的开始编写:
# -*-encoding:utf-8 -*-
在python3中:内存中使用的是unicode。
1、编码(encode)
编码之后的数据类型是bytes类型的数据
bytes的表现形式:
1)英文 编码之后的结果和源字符串一致 如b‘alex’
2)中文 编码之后的结果根据编码的不同,编码结果也不同,一个中文的UTF-8是三个 字节,GBK是两个字节
字符串在传输时转化成bytes=>encode(字符集)来完成

2、解码(decode)
在网络传输和存储的时候我们python是保存和存储的bytes类型,那么在对方接收的时候,接收到的也是bytes类型,我们可以使用decode()来进行解码操作,把bytes类型的数据还原回我们熟悉的字符串:


2018.8.2 python中is和==的区别的更多相关文章
- python中// 和/有什么区别
python中// 和/有什么区别 通常C/C++中,"/ " 算术运算符的计算结果是根据参与运算的两边的数据决定的,比如: 6 / 3 = 2 ; 6,3都是整数,那么结果也就是 ...
- Python中__repr__和__str__区别
Python中__repr__和__str__区别 看下面的例子就明白了 class Test(object): def __init__(self, value='hello, world!'): ...
- 2018.8.15 python 中的sorted()、filter()、map()函数
主要内容: 1.lambda匿名函数 2.sorted() 3.filter() 4.map() 5.递归函数 一. lambda匿名函数 为了解决一些简单的需求而设计的一句话函数 # 计算n的n次方 ...
- 2018.8.14 python中的内置函数(68个)
主要内容: python中68个内置函数的功能及使用方法
- 2018.8.13 python中生成器和生成器表达式
主要内容: 1.生成器和生成器函数 2.列表推导式 一.生成器 生成器是指就是迭代器,在python中有三种方式来获取生成器: 1.通过生成器函数 2.通过各种推导式来实现生成器 3.通过数据的转换也 ...
- 2018.8.9 python中的动态传参与命名空间
主要内容: 1.函数参数 ----动态传参 2.名称空间与作用域 3.函数的嵌套 4.global,nonlocal关键字 一.函数参数 ------动态传参 形参的第三种:动态传参 动态传参分为两种 ...
- 在python 中is和= = 的区别
Python中的对象包含三要素:id.type.value其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值is判断的是a对象是否就是b对象,是通过id来判断的==判断的是a对 ...
- Python中is和==的区别
Python中有很多运算符,今天我们就来讲讲is和==两种运算符在应用上的本质区别是什么. 在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识) ...
- Python中classmethod与staticmethod区别
classmethod:类方法staticmethod:静态方法 在python中,静态方法和类方法都是可以通过类对象和类对象实例访问.但是区别是: @classmethod 是一个函数修饰符,它表示 ...
随机推荐
- windows下tomcat启动日志乱码
在windows下用startup.bat启动时,控制台里显示乱码,如图: 解决方案: 修改conf文件下的logging.properties文件,将控制台输出的编码修改为GBK: java.uti ...
- 正睿OI国庆DAY2:图论专题
正睿OI国庆DAY2:图论专题 dfs/例题 判断无向图之间是否存在至少三条点不相交的简单路径 一个想法是最大流(后来说可以做,但是是多项式时间做法 旁边GavinZheng神仙在谈最小生成树 陈主力 ...
- 编写shell脚本实现一键创建KVM虚拟机
shell脚本一键创建虚拟机 代码如下: #!/bin/bashname=$1 #把位置变量$1重新定义为name(创建虚拟机的名字)path1=/var/lib/libvirt/images/ #i ...
- 使用 .NET Core 3.0 的 AssemblyLoadContext 实现插件热加载
一般情况下,一个 .NET 程序集加载到程序中以后,它的类型信息以及原生代码等数据会一直保留在内存中,.NET 运行时无法回收它们,如果我们要实现插件热加载 (例如 Razor 或 Aspx 模版的热 ...
- spark针对web日志正则匹配
针对于web日志做分析是学习spark常用练习项目.此文介绍web日志正则匹配相关小提示. 实例测试 从网上找了一个access日志案列 218.19.140.242 - - [10/Dec/201 ...
- display值的作用分别是什么?relative和absolute分别是相对谁定位的?
display值的作用分别是什么? none:元素隐藏,不占据位置 block:该元素显示为块级元素 inline:默认,该元素会被显示为内联元素 inline-block:行内块元素 list-it ...
- 1.linux系统基础笔记(互斥量、信号量)
操作系统是很多人每天必须打交道的东西,因为在你打开电脑的一刹那,随着bios自检结束,你的windows系统已经开始运行了.如果问大家操作系统是什么?可能有的人会说操作系统就是windows,就是那些 ...
- java之ThreadLocal详解
一.ThreadLocal简介 ThreadLocal是线程的局部变量,是每一个线程所单独持有的,其他线程不能对其进行访问,通常是类中的private static字段. 我们知道有时候一个对象的变量 ...
- indexeddb:浏览器中的数据库
随着浏览器功能的不断加强,越来越多的网站开始考虑将大量的数据存储在客户端.这样的考虑是为了直接从本地获取数据,减少从服务器获取数据耗费的网络资源. 原有的浏览器数据存储方案都不适合存储大量数据.Coo ...
- 开启sql语句监控
开启sql执行语句监控 set global general_log=on; set global_log_output='table'; 修改mysql配置文件,在[mysqld]中加入 gener ...