python中is与==的区别,编码和解码
在介绍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与==的区别,编码和解码的更多相关文章
- python之is 和 == 的区别//编码和解码
一.is 和 == 的区别: 1 .id() 内存地址 2. == 比较 #比较两边的值 3. is 比较 #比较的是内存地址 数字,字符串,有小数据池 #数字小 ...
- 【转】Python中的字符串与字符编码
[转]Python中的字符串与字符编码 本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常 ...
- Python中__repr__和__str__区别
Python中__repr__和__str__区别 看下面的例子就明白了 class Test(object): def __init__(self, value='hello, world!'): ...
- python中// 和/有什么区别
python中// 和/有什么区别 通常C/C++中,"/ " 算术运算符的计算结果是根据参与运算的两边的数据决定的,比如: 6 / 3 = 2 ; 6,3都是整数,那么结果也就是 ...
- PHP中对汉字进行UNICODE编码和解码的实现
<?php /** PHP中对汉字进行UNICODE编码和解码的实现 **/ class Helper_Tool{ //php中的unicode编码转中文 static function uni ...
- Python中的字符串与字符编码
本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常谈的话题,同行们都写过很多这方面的文章. ...
- python全栈开发 随笔 'is' 和 == 的比较知识与区别 编码和解码的内容及转换
python 一. is 和 == 的区别; == 比较的是两边的值. a = 'alex' b = 'alex' print(a = b) #True a = 10 b = 10 print(a = ...
- 浅析Python中bytes和str区别
本博转载自:Chown-Jane-Y的浅析Python3中的bytes和str类型 Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示, ...
- 2018.8.2 python中is和==的区别
一.is 和==的区别 1.is 比较的是左右两边的内存地址, ==比较的是左右两边的值. 2.id() 通过id()可以查看一个变量表示的值得内存中的地址. s = 'alex' s1 = 'ale ...
随机推荐
- PHP如何访问数据库集群
一般常见的有三种做法, 1,自动判断sql是否为读,来选择数据库的连接: 实例化php DB类的时候,需要一次连接两台服务器,然后根据slq选择不同的连接,举个例子: $link_w = mysql_ ...
- EFCore 调试远程SqlServer数据库提示信号灯超时时间已到
背景 最近在使用EFCore去连接阿里云上面的数据库进行开发的时候,当自己在Debug模式下总是提示下面的报错信息,然后找了好久都没有解决,报错信息如下: an exception has been ...
- Python3数据类型之数字
1. Python数字类型的作用 Python数字类型用来存储数值,它是不可变对象,一旦定义之后,其值不可以被修改.如果改变了数字类型的值,就要重新为其分配内存空间. 定义一个数字类型的变量:a = ...
- python 使用API调用和风天气获取天气情况并保存
第一步.注册注册免费API和阅读技术文档: 注册地址:https://console.heweather.com 注册完成后,激活登录后,新建应用 .新建key KEY名称 密钥ID 密钥 类型下载城 ...
- ArcGIS Server Identify结果属性 AliasName
最近做地图服务相关工作,一般在数据库中,字段名有好多限制,而实际工作中,需要显示的经常有一些较长的字段或者包含单位等特殊符号. 为了方便属性的操作,将属性字段名改为英文,AliasName中保存了属性 ...
- 手动编译ts的经过
动机 以前写ts或者es6,都是用在脚手架搭建的项目中,比如vue和react,当时当我识图写一个ts的demo的,我还要创建一个完整的vue或者react项目?明显不合适,那就要研究一下如何手动搭建 ...
- Advanced REST Client 的安装
1.解压Advanced-REST-client_v3.1.9.zip到当前文件夹,得到Advanced-REST-client_v3.1.9目录 2.在Chrome浏览器中打开:chrom ...
- Vue自定义指令和自定义过滤器
一.自定义指令: 自定义指令分为两种:全局自定义指令和局部自定义指令 全局指令指所有组件都可以使用,局部指令是只有在当前组件中才可以使用. 如,我们现在有个需求,当一个输入框获取焦点时,显示出一个di ...
- Python Django mysqlclient安装和使用
一.安装mysqlclient 网上看到很过通过命令:pip install mysqlclient 进行安装的教程,但是我却始终安装失败,遇到的错误千奇百怪,后来通过自己下载mysqlclient客 ...
- Visual Studio中找不到.Net Core SDK
在win 7 64位上安装了.Net Core 2.1 x86 SDK后,又卸载重新安装了.Net Core 3/2 x64 SDK.结果在VS中新建项目时没有.Net Core 3.1 SDK. 在 ...