python中is与==的区别,编码和解码
2024-08-26 18:39:22
在介绍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")) #浣犲ソ
最新文章
- 极光推送和友盟推送,ios端和安卓端的后端调试设置
- Web 上传图片加水印
- 在windowService用Process.Start()启动程序没有界面-记录
- sql server ,sql语句,练习笔记
- PHP初学者必须掌握的10个知识点
- merge into 和 update 的效率对比
- 【亲测可用】MySQL 4.1迁移到MySQL 5.0版本的中文乱码问题解决
- 百度地图之UI控制
- 逆向project第004篇:令计算器程序显示汉字(下)
- 一个爬取Bing每日壁纸的python脚本
- cardview和Palette,ActionBar颜色随图改变
- Ubuntu 17.04 安装
- Hadoop — Yarn原理解析
- mysql 查看某个数据库中所有表的数据量
- 多线程中的Lock小结
- [UE4]正交
- VS 多工程代码编写
- 使用IDEA搭建spring
- vue---设置缩进为4个空格
- jquery条形码生成器