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 # ...
随机推荐
- hihocoder #1608 : Jerry的奶酪(状压DP)
传送门 题意 分析 设dp[i][j]为在i状态下当前在第j个奶酪的最小费用 转移方程:dp[(1<<k)|i][k]=dp[i][j]+d[j][k] 预处理出每个奶酪之间的距离,加入起 ...
- C#字体字号的改变
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- Jasper_crosstab_headerPosition_columngroup header position config - (headerPosition="Stretch")
i.e <columnGroup name="column11" height="20" totalPosition="Start" ...
- ZOJ Course Selection System DP
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5565 Course Selection System Time ...
- 【转】Effective C#观后感之提高Unity中C#代码质量的21条准则
转自:http://blog.csdn.net/swj524152416/article/details/75418162 我们知道,在C++领域,作为进阶阅读材料,必看的书是<Effectiv ...
- java transient关键字作用,使用场景
transient的作用及使用方法,官方解释为: Variables may be marked transient to indicate that they are not part of the ...
- mvc 连接数据库但单复值得问题
1. The model backing the ‘MusicStoreDBContext‘ context has changed since the database was created. ...
- spring mvc 获取所有注册的url
背景:坑货同事写代码一点规范都没有,瞎写,根据url没法直接定位到方法,无奈产生了此接口,程序员何苦为难程序员呢 @Autowired private RequestMappingHandlerMap ...
- java 并发容器一之ConcurrentHashMap(基于JDK1.8)
上一篇文章简单的写了一下,BoundedConcurrentHashMap,觉得https://www.cnblogs.com/qiaoyutao/p/10903813.html用的并不多:今天着重写 ...
- 简述UML类图
注:本文摘自刘伟老师的博客http://blog.csdn.net/lovelion/article/details/7838679,如有侵权,请联系本人! 1.类的UML图示 在UML中,类使用包含 ...