Python基础篇 -- 小数据池和再谈编码
小数据池
1. id()
通过id()可以查看到一个变量表示的值在内存中的地址
s = "Agoni"
print(id(s))
# 2410961093272
2. is 和 ==
== 判断左右两端的值是否相等,是不是一致
is 判断左右两端的内存地址是否一致,如果返回True 可以确定这两个变量使用的是同一个对象
在Python中,默认会把数字, 字符串, 布尔值进行缓存
1. 当我们在控制台时(CMD) #按照这个记
数字: -5 ~ 256 之间的整数会被缓存
字符串:
- 长度小于等于1,会默认缓存
- 长度大于1. 如果字符串中只有数字,字母,下划线缓存
- 用乘法得到的字符串:①乘数是1 , 仅包括数字,字母,下划线时会被缓存② 乘数不是1,最终长度不能超过20
手动指定缓存
from sys import intern # intern 指定缓存内容
a = intern("Agoni@.com")
b = intern("Agoni@.com")
print(a is b)
布尔值
2. py文件里
py文件里,一个代码块内部, 只会缓存 int str bool .也有自己的小 数据池, 缓存范围回避外面的代码块的数据池大
1. 数字. 基本上都会缓存 运算结果不缓存( -5~256 会缓存)
- 字符串. 默认的字符串都缓存 如果有乘法 遵循上方的结论
- 布尔值. 默认缓存
再谈编码
在Python2里面 默认的编码是ASCII
在Python3中 UNICODE 是可以使用的, 默认用的就是UNICODE, 代码用UTF-8 来存储
编码? 把UNICODE 转换成UTF-8
s = "未来可期"
a = s.encode("UTF-8") # encode 之后的结果是bytes类型 依然是原来的字符串
print(a) # 打印结果 b'数据'
# b'\xe6\x9c\xaa\xe6\x9d\xa5\xe5\x8f\xaf\xe6\x9c\x9f' \x 表示是16进制解码
a = b'\xe6\x9c\xaa\xe6\x9d\xa5\xe5\x8f\xaf\xe6\x9c\x9f'
s = a.decode("UTF-8")
print(s)
# 打印结果 未来可期
GBK 不能用UTF-8 解码 , 必须用GBK解码 解码之后是UNICODE
Python基础篇 -- 小数据池和再谈编码的更多相关文章
- day 006 小数据池和再谈编码
1.小数据池. 目的:缓存我们的字符串,整数,布尔值.在使用的时候不需要创建过多的对象 缓存: int str bool int 范围:-5~256 str: 1.长度小于等于1,直接缓存 2.长度大 ...
- python基础之小数据池、代码块、编码和字节之间换算
一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽 ...
- python基础之小数据池,is和==区别 编码问题
主要内容 小数据池,is和==区别 编码问题 小数据池 一种缓存机制,也称为驻留机制,是为了能更快提高一些字符串和整数的处理速度is 和 == 的区别 == 主要指对变量值是否相等的判断,只要数值相同 ...
- python基础之小数据池、代码块、编码
一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽 ...
- python基础之小数据池
一,id,is,== 在Python中,id是什么?id是内存地址,比如你利用id()内置函数去查询一个数据的内存地址: name = '太白' print(id(name)) # 158583128 ...
- Day6--Python--小数据池和再谈编码
一.小数据池 参考 目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象 缓存: int, str, bool int: 缓存范围 -5~256 str: 1. 长度小于等于1,直接缓 ...
- python之路--小数据池,再谈编码,is和 == 的区别
一 . 小数据池 # 小数据池针对的是: int, str, bool 在py文件中几乎所有的字符串都会缓存. # id() 查看变量的内存地址 s = 'attila' print(id(s)) 二 ...
- python中的 小数据池 is 和 ==
1. 小数据池 一种数据缓存机制,也被称为驻留机制 小数据池针对的是:整数 , 字符 , 布尔值 .其他的数据类型不存在驻留机制 在python中对 -5 到256之间的整数会被驻留在内存中, 将一定 ...
- 百万年薪python之路 -- 小数据池和代码块
1.小数据池和代码块 # 小数据池 -- 缓存机制(驻留机制) # == 判断两边内容是否相等 # a = 10 # b = 10 # print(a == b) # is 是 # a = 10 # ...
随机推荐
- 洛谷 - P1072 Hankson - 的趣味题 - 质因数分解
https://www.luogu.org/problemnew/show/P1072 一开始看了一看居然还想放弃了的. 把 \(x,a_0,a_1,b_0,b_1\) 质因数分解. 例如 \(x=p ...
- Excel - 使用公式将秒转换为分+秒
场景 现在有个需求:将Excel里的时间转换为分+秒的格式,如下: time(second) time(min+second) 482.712 XXmin,XXs 480.737 XXmin,XXs ...
- python 基础(十五) socket编程
SOCKET TCP协议: 有请求 有响应 称之为 tcp协议 是面向连接的协议 就是在收发数据之前 必须先要建立一个可靠的链接 三次握手 如:网站 UDP协议: 是一个非链接的协议 传输之前不需要键 ...
- AKOJ-1695-找素数
题意: 给定区间L,R. 计算区间中素数个数. 2 <= L,R <= 2147483647, R-L <= 1000000. 思路: 素数区间筛 先筛(2-sqrt(r)). 再用 ...
- Jasper_table_resolve multiple copies of table in detail band issue
resolve method: (1) put table component into the Title band / Page Header band / Summary band, not i ...
- VMWare版本兼容问题处理
其他电脑拷贝过来的VMWare虚拟机启动时报错: 在虚拟机根目录中找到"vmx"后缀文件,发现原来的VM版本为14,而本地的VMWare版本为11. virtualHW.versi ...
- Action类为何要 extends ActionSupport以及实现ModelDriven
http://blog.sina.com.cn/s/blog_164e377490102wqhk.html
- 在 Java 的多线程中,如何去判断给定的一个类是否是线程安全的(另外:synchronized 同步是否就一定能保证该类是线程安全的。)
同步代码块和同步方法的区别:同步代码块可以传入任意对象,同步方法中 如果多个线程检查的都是一个新的对象,不同的同步锁对不同的线程不具有排他性,不能实现线程同步的效果,这时候线程同步就失效了. 两者的区 ...
- python学习之模块:
每个.py文件就是一个以文件名作为区别的模块,模块化编程便于维护.其它模块要调用某个模块的变量和函数就要用import 模块,然后通过模块.函数.模块.变量来引用. 为防止模块间变量和函数乃至模块名的 ...
- Ionic之button标签ng-click无反应解决
在使用Ionic中,使用按钮的ng-click事件,竟然点击没有反应,刚开始以为自己写得方法有问题才会不起作用,自己在点击之后就console.log()一个东西,但是console也是无法反应的.& ...