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 ...
随机推荐
- Python常见的异常
Python中常见的异常如表所示. exception的更多用法: 1.通常else 语句只有在没有异常的情况下才会被执行 try: aa = "异常测试:" print(aa)e ...
- date.toLocaleString()的替换
Date date = new Date(); System.out.println("前:" + date.toLocaleString()); SimpleDateFormat ...
- Maven工具-简介
Maven工具-简介 定义 ①maven是一款服务于java平台的自动化构建工具 make→Ant→maven→Gradle ②构建 [1]概念:以"java源文件"." ...
- os删除文件或者文件夹
最近在使用os.remove删除目录时报错了,这里记录下os操作文件或者目录的常用方法 递归删除文件或文件夹 import shutil shutil.rmtree() 文件的重命名 os.renam ...
- juc-locks包
1. 简介 java.util.concurrent.locks 包含常用的锁实现,重点研究AbstractQueuedSynchronizer.ReentrantLock.ReentrantRead ...
- Linux基础-04-权限
1. 查看文件的权限 1) 使用ls –l命令查看文件上所设定的权限. -rw-r--r-- 1 root root 605 Mar 18 20:28 .jp1.tar.gz 权限信息 属主 属组 文 ...
- PAT(B) 1053 住房空置率(Java)统计
题目链接:1053 住房空置率 (20 point(s)) 题目描述 在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断.判断方法如下: 在观察期内,若存在超过一半的 ...
- PAT(B) 1057 数零壹(Java)字符串
题目链接:1057 数零壹 (20 point(s)) 题目描述 给定一串长度不超过 105 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得 ...
- 将springboot项目移到内网出现的问题!
报找不到Jay包错误,在pom.xml文件中加这段 <repositories> <repository> <id>central</id> <u ...
- Hystrix 用法及注解用法
一.hystrix参数使用方法 通过注解@HystrixCommand的commandProperties去配置,如下就是hystrix命令超时时间命令执行超时时间,为1000ms和执行是不启用超时 ...