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 ...
随机推荐
- java多线程实现多客户端socket通信
一.服务端 package com.czhappy.hello.socket; import java.io.IOException; import java.net.InetAddress; imp ...
- php设计模式;抽象类、抽象方法
设计模式 什么叫设计模式 所谓设计模式,就是一些解决问题的“常规做法”,是一种认为较好的经验总结.面对不同的问题,可能会有不同的解决办法,此时就可以称为不同的设计模式. 工厂模式 在实际应用中,我们总 ...
- 使用fiddl模拟弱网
原文地址:https://www.jianshu.com/p/71c3b4a49930 Fiddler-弱网设置 1.打开fiddler,点击 Rules->Performance-> 勾 ...
- Spark 基础操作
1. Spark 基础 2. Spark Core 3. Spark SQL 4. Spark Streaming 5. Spark 内核机制 6. Spark 性能调优 1. Spark 基础 1. ...
- [转帖]java架构之路-(面试篇)JVM虚拟机面试大全
java架构之路-(面试篇)JVM虚拟机面试大全 https://www.cnblogs.com/cxiaocai/p/11634918.html 下文连接比较多啊,都是我过整理的博客,很多答案都 ...
- (二)linux 学习 -- 探究操作系统
The Linux Command Line 读书笔记 - 部分内容来自 http://billie66.github.io/TLCL/book/chap04.html 文章目录 ls 命令进阶 `l ...
- 20191031:GIL全局解释锁
20191031:GIL全局解释锁 总结关于GIL全局解释锁的个人理解 GIl全局解释锁,本身不是Python语言的特性,而是Python语言底层的c Python解释器的一个特性.在其他解释器中是没 ...
- Python进阶:生成器--懒人版本的迭代器
从容器.可迭代对象谈起 所有的容器都是可迭代的(iterable),迭代器提供了一个next方法.iter()返回一个迭代器,通过next()函数可以实现遍历. def is_iterable(par ...
- 1183: 零起点学算法90——海选女主角(C语言)
一.题目 http://acm.wust.edu.cn/problem.php?id=1183&soj=0 二.分析 从描述来看,就是找出一个二维数组中绝对值最大的数: 带符号的32位整数,刚 ...
- 『Python基础』第5节:条件控制
if 语句的使用 单分支 if 条件: 满足条件后要执行的代码 例如: if 2 < 3: print(222) print(333) 每个条件后面都要使用冒号 :, 表示接下来是满足条件后要执 ...