我的编程空间,编程开发者的网络收藏夹
学习永远不晚

第七天-数据池/常量池 编码补充

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

第七天-数据池/常量池 编码补充

 

 

小数据池/常量池(坑,别纠结) :

  小数据池 一种数据缓存机制.也被称为驻留机制 

  用缓存的前提: 数据可以被共享。不可变数据类型

  作用/意义:把数据存在小数据池 快速创建对象 共享 节省内存 解释字符串赋值问题等

  python中只针对:整数,字符串串,布尔值    注意共享的是不可改变的数据类型

 

  id()  is  ==

 1 # id() 查看一个变量表示的值的内存地址
 2 a = 1000
 3 b = 1000
 4 c = "lijie"
 5 print(id(a)) # 2602674608112  内存地址
 6 print(id(b)) # 2602674608112
 7 print(id(c)) #  2602703864248
 8 
 9 # == 判断左右两边的值是否一致
10 print(a == b)  # 判断左右两边的值
11 print(a == c)
12 
13 # is 判断左右两边的内容地址是否一致
14 print(a is b)  # 判断左右两边内容地址
15 print(b is c)

 

  缓存

  为什么有缓存 数据保存安全 速度快 加大吞吐量 分布式 异地部署(如 Google无盘数据中心)

  单纯的创建变量。都是有缓存的

1 # 单纯的创建变量。都是有缓存的
2 a = 49876
3 b = 49876
4 print(a is b)  # True
5 a = 49786*20
6 b = 49786*20
7 print(a is b) # True

  注意 在命令行中(command模式) 小数据池 int取值范围在[-5,256]

1 # 注意 在命令行中(command模式) 小数据池 int取值范围在[-5,256]
2 a = 2000
3 b = 2000
4 print(a is b) # 在py文件里面是True

  但在命令行中:

  原因: 在代码块内的缓存机制是不一样的 故在py文件里面是True 在command模式中是False

 

数据池不必纠结,了解会用就好,官方也没详细解释。

 

编码 转码:

  python3中使用的是unicode,python2中使用的是ascii码,但unicode 太长适合计算不适合存储. utf-8适合存储和传输.因此需要用用到编码转换.

  编码:  .encode()   

  注意编码和解码时都需要制定编码格式.

 1 #.encode()  
 2 s = "嘿en哈"
 3 s0 = "JJ"
 4 bs = s.encode("utf-8") # 制定utf-8格式
 5 bs0 = s0.encode("utf-8")
 6 # 英文编码之后结果和源字符串一致.中文编码之后的结果根据编码不同.编码结果不同.
 7 print(bs0) # b'JJ' 英文编码后和原来一致
 8 print(bs)  # b'\xe5\x98\xbfen\xe5\x93\x88'  一个中文utf-8三字节
 9 bs0 = s0.encode("gbk")
10 bs = s.encode("gbk")
11 print(bs0) # b'JJ'
12 print(bs) # b'\xba\xd9en\xb9\xfe'  一个中文gbk 两字节

  解码:.decode()

1 j = b'\xba\xd9en\xb9\xfe'
2 j1 = j.decode("gbk")
3 print(j1)

  编码:存储和传输时 encode()

  解码:接收数据时 decode()

  b'xxxxx'这种格式的数据是bytes类型的数据  bytes是python中的最小数据单元

  数据传输(包括文字/图片/视频)都是bytes(如直播)————流程:编码——推流——解码——用户

 

1 # 练习 把一个utf-8编码变成GBK编码
2 bm = b'\xe5\x98\xbfen\xe5\x93\x88'
3 
4 bm0 = bm.decode() # 先解码成Unicode
5 bm1 = bm0.encode("gbk") # 再编码成gbk
6 print(bm1)

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

第七天-数据池/常量池 编码补充

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

第七天-数据池/常量池 编码补充

小数据池/常量池(坑,别纠结) :  小数据池 一种数据缓存机制.也被称为驻留机制   用缓存的前提: 数据可以被共享。不可变数据类型  作用/意义:把数据存在小数据池 快速创建对象 共享 节省内存 解释字符串赋值问题等  python中只
2023-01-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录