全国服务热线:400-6263-721

位置:西安童程童美少儿编程培训学校 > 学校动态 > python课堂 小数据池

python课堂 小数据池

来源:西安童程童美少儿编程培训学校时间:2022/9/19 11:21:31

  都能学会的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)

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/1/news/563510/违者必究! 以上就是西安童程童美少儿编程培训学校 小编为您整理 python课堂 小数据池的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6263-721