python小学生课本剧_小学生都能学会的python(小数据池)

小学生都能学会的python(小数据池)

1. 小数据池.

目的:缓存我们字符串,整数,布尔值。在使用的时候不需要创建过多的对象

缓存:int, str, bool、

int: 缓存范围 -5~256

str:

1. 长度小于等于1,直接缓存

2. 长度大于1. 字符串中如果只有数字, 字母, 下划线。 就会缓存

3. 乘以1。 同上, 乘以大于1的数。仅包含数字,字母下划线。最终长度小于20会缓存

4. 使用sys模块中的intern()缓存字符串

代码块的关系:如果在同一个代码块中。默认的整数和字符串还有布尔值都会进行缓存. 如果涉及计算。尊崇上面的规则

如果跨代码块,按照上面的规则执行的

# a = [1,2,2,13,123,123,12,3,12,3,12,312,3,12,32,13,12,3,21]

# b = a # 明天深浅拷贝

# 内存地址 id()

# print(id(a))

# print(id(b))

# a = 1000

# print(id(a)) # 内存的开辟是由解释器来完成的.

# 双胞胎

# == 比较的是值(内容) True

# is 比较的是内存地址(是不是同一个对象) False

# lst1 = [1,2,3]

# lst2 = [1,2,3]

# print(lst1 == lst2) # 长得一样

# print(lst1 is lst2) # 不是同一个对象

# a = "alex"

# b = "alex"

# print(a == b)

# print(a is b) 在python中, 默认会把数字, 字符串, 布尔值进行缓存

# 1.当我们在控制台的时候, 代码块与代码块之间的规则:

# 1. 数字: -5 ~ 256之间的整数会被缓存

# 2. 字符串:

# 长度小于等于1 会默认缓存

# 长度大于1 如果字符串中只有数字, 字母下换线缓存

# 乘法得到的字符串:

# 1. 如果乘数是1. 和上面两个方案一致

# 2. 乘数不是1. 最终长度不能超过20

# 手动指定缓存 from sys import intern intern()制定缓存的内容

# 3. 布尔值

# 2. py文件里. 一个代码块内部. 只会缓存int, str, bool 也有自己的小数据池。 缓存的范围会比外面的代码块的数据池要大

# 1. 数字。都会缓存。 运算的结果不缓存(-5~256 会缓存)

# 2. 字符串。 默认的字符串都缓存. 如果有乘法。 遵循上方的结论

# 3. 布尔值。 默认缓存

a = "alex@sb.com" # 5

b = "alex@sb.com" # 1

2. is和==的区别

is比较的是内存地址

==比较的是值

3. decode和encode

python3内存中使用的是unicode。

unicode => utf-8 encode("utf-8")

utf-8 => unicode decode("utf-8")

utf-8和gbk不能直接转换

bytes是字符串的另一种表示形式

再谈编码

'''

1. ASCII: 8bit 1byte 英文字母 数字 特殊字符.

2. GBK: 16bit 2byte 主要是存中文。日文, 韩文, 繁字体。 中文的特殊字符 中国 (abcd)

3. UNICODE: 32bit 4byte

4. UTF-8: 可变长度的unicode

英文: 8bit, 1byte

欧洲文字:16bit, 2byte

中文: 24bit, 3byte (abcd)

GBK和UTF-8不能直接互换

转码

'''

# 在python2里面. 默认的编码是ASCII

# 在python3中unicode是可以使用的。 默认用的就是Unicode. 代码用utf-8来存储

# 如果用unicode存储, 如果用utf-8

# s = "你好啊" # 看到的就是unicode

# print(s)

# 1. 编码. 把unicode转换成utf-8

# s = "刘伟很皮" # 12个字节

# abc = s.encode("UTF-8") # encode之后的结果是bytes类型 依然是原来的字符串

# print(abc) # b'数据'

# 解码

# abc = b'\xe5\x88\x98\xe4\xbc\x9f\xe5\xbe\x88\xe7\x9a\xaf'

# s = abc.decode("UTF-8") # 解码。 用什么编码, 就用什么解码

# print(s)

# s = "赵瑞鑫"

# print(s.encode("GBK"))

# bs = b'\xd5\xd4\xc8\xf0\xf6\xce'

# print(bs.decode("GBK")) # GBK的编码不能用UTF-8解码

# GBK的编码. 把这句话变成UTF-8

# bs = b'\xd5\xd4\xc8\xf0\xf6\xce'

# # 先解码

# s = bs.decode("GBK")

# # 重新编码

# bs2 = s.encode("UTF-8")

# print(bs2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值