is和==的区别,小数据池,编码
1 is 和 == 的区别
- 1> id( )表示我们可以通过它来查到在内存中的地址
s = "alex"
print(id(s)) #
lst = [1,2, 4]
print(id(lst)) #
lst = [1, 2, 4] # 即使定义两个一样结果的列表,操作系统都会在内存中开辟2块内存地址
print(id(lst)) #
tup = (1, 2)
print(id(tup)) #
tup1 = (1, 2) # 元组亦是.
print(id(tup1)) #
- 总结:小数据池概念的引入把我们使用过的数据储存在小数据池中,供其他变量使用
- 2> 小数据池包含:int ,str ,bool
- 一般情况下我们定义的字符串都会被放在小数据池中,在使用字符串的时候,python会帮我们把字符串缓存,在下次使用的是后直接只想这个字符串即可,这样可以节省很多空间.
- 3> is 和id( )的联系
- is比较的是id()计算出来的结果,由于,由于id()帮我们查的是数据(内容)的内存地址,那么is就是比较数据(内容)的内存地址
- 最终,我们可以通过is来比较两个数据(内容)是否为同一个对象.
- ==是比较左右两端的数据(内容)是否一样
- is是比较的两个数据(内容)内存地址是否一样
2,编码的补充:
- 在python3中,程序运行阶段,使用的是unicode码,因为是万国码,所以什么码都能识别,所以在使用python3的时候是把unicode的代码转换成UTF-8的代码.
- 内存使用的是unicode,硬盘和网络传输用的是UTF-8或者GBK.
- bytes的表现形式:
- >英文b"alex"英文的表现形式和字符串没有设么区别
- >中文 b'\xe4\xb8\xad'这时一个汉字UYF-8的bytes表现形式
- encode(内容),编码,获取到的是编码之后的结果."bytes".........................格式是.encode("utf-8"或者,"GBK")
- decode(内容),解码,把bytes变成我们熟悉的字符串.................................格式是.decode("utf-8"或者,"GBK")
# utf-8的编码以及解码
s = "中"
# 编码:
print(s.encode("utf-8")) # b'\xe4\xb8\xad'
# 解码:
print(b'\xe4\xb8\xad'.decode("utf-8")) # GBK的编码以及解码
s = "中"
# 编码:
print(s.encode("gbk")) # b'\xd6\xd0'
# 解码:
print(b'\xd6\xd0'.decode("gbk")) # 中
小结:
- GBK的bytes不能直接转化为UTF-8的bytes,需要先转化为unicode再转化为UTF-8的bytes
- 即.decode("UTF-8")---------.encode("GBK")----------.decode("GBK").
is和==的区别,小数据池,编码的更多相关文章
- is 与 == 的区别;小数据池; 编码与解码
1, is 与 == 的区别 == 比较的是两边的值 is 比较的是两边的地址 id () 2,小数据池(在终端中) 数字小数据池的范围 -5 ~ 256 字符串中如果有特殊字符他们的内存地址 ...
- Python基础学习Day6 is id == 区别,代码块,小数据池 ---->>编码
一.代码块 Python程序是由代码块构造的.块是一个python程序的文本,他是作为一个单元执行的. 代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而作为交互方式输入的每个命令都是 ...
- python --- 06 小数据池 编码
一.小数据池, id() 进行缓存 1.小数据池针对的是: int, str, bool 2.在py文件中几乎所有的字符串都会缓存. 在cmd命令窗口中几乎都不会缓存 不同的解释器有不同 ...
- python之路---06 小数据池 编码
二十二.小数据池, id() 进行缓存 1.小数据池针对的是: int, str, bool 2.在py文件中几乎所有的字符串都会缓存. 在cmd命令窗口中几乎都不会缓存 不同的解释器有 ...
- python之路(内存,小数据池,编码等)
代码块: python真正的代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 但是,在python终端交互模式下,每一条代码都是一个代码块 python在同一个代码块中的变量,初始化对象 ...
- python 全栈开发,Day6(is,小数据池,编码转换)
一.is a = 100 b = 100 print(a == b) print(a is b) 执行输出: TrueTrue 查看内存地址,使用id函数 print(id(a)) print(id( ...
- is ==小数据池编码解码
== 比较 比较的是两边的值 is 比较 比较的是内存地址 判断两个东西指向的是不是同一个对象 取内存地址 id() 小数据池 ...
- python之路--小数据池,再谈编码,is和 == 的区别
一 . 小数据池 # 小数据池针对的是: int, str, bool 在py文件中几乎所有的字符串都会缓存. # id() 查看变量的内存地址 s = 'attila' print(id(s)) 二 ...
- python基础之小数据池,is和==区别 编码问题
主要内容 小数据池,is和==区别 编码问题 小数据池 一种缓存机制,也称为驻留机制,是为了能更快提高一些字符串和整数的处理速度is 和 == 的区别 == 主要指对变量值是否相等的判断,只要数值相同 ...
随机推荐
- linux 部署nginx作为反向代理入口的内核参数/etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux## For binary values, 0 is disabled, 1 is enable ...
- LeetCode(81) Search in Rotated Array II
题目 Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would t ...
- PL/SQL编程接触
1.认识PL/SQL 结构化查询语言(Structured Query Language,SQL)是用来访问和操作关系型数据库的一种标准通用语言,它属于第四代语言(4GL),简单易学,使用它可以很方便 ...
- PS学习笔记(02)
书籍推荐: <设计之下>这本APP设计书字里行间都透露出了真实,作者能将其工作流程和方法分享出来,实在值得尊敬.通过这本书全面了解了真实的设计工作是怎么做的,今后可以用到自己的工作中.赞! ...
- kissy学习
http://docs.kissyui.com/1.4/docs/html/guideline/kmd.html
- asp.net静态变量研究
asp.net的webform,请求一个页面,如index.aspx,每一次都会交给不同的线程来处理. 经过个人测试,不管是页面类的静态属性,还是工具类的静态属性,都不会因为session的过期而改变 ...
- 次最短路径 POJ 3255 Roadblocks
http://poj.org/problem?id=3255 这道题还是有点难度 要对最短路径的算法非常的了解 明晰 那么做适当的修改 就可以 关键之处 次短的路径: 设u 到 v的边权重为cost ...
- 深入理解ajax系列第五篇
前面的话 一般地,使用readystatechange事件探测HTTP请求的完成.XHR2规范草案定义了进度事件Progress Events规范,XMLHttpRequest对象在请求的不同阶段触发 ...
- 【转载】在Javascript中 声明时用"var"与不用"var"的区别
原文链接:http://www.2cto.com/kf/201204/128406.html[侵删] Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有 ...
- PHP 基础复习 2018-06-21
(1)PHP Zip File 函数 $zip = zip_open("test.zip"); if ($zip) { while ($zip_entry = zip_read($ ...