# id()函数可以帮我们查看一个变量的内存地址
# a = 10
# b = 30
# print(id(a))  # 1515545088
# print(id(b))  # 1515545728

# lst = ['周杰伦', "麻花藤"]
# print(id(lst))  # 166167624
# print(lst)
# lst = []  # 创建了一个新列表
# lst.append("胡辣汤")
# print(id(lst))  # 166167624
# print(lst)

# lst1 = [1,2,3] # 两个对象 内存地址是不一样的
# lst2 = [1,2,3]
# print(id(lst1)) # 166167624
# print(id(lst2)) # 166122376

# s1 = "abc" # 内存中是没有"abc", 创建一个新的  0.0001
# s2 = "abc" # 内存中是已经有了"abc", 直接把abc拿来用   0.0000001
# print(id(s1), id(s2)) # 31096032 31096032

# 视频频率最高的数据类型: 字符串,为了能够快速的创建字符串.
# 节省内存. 把相同的规律的字符串进行缓存,当下次创建的时候就不在创建了
# 把字符串的缓存-> 小数据池 -> String iterning -> 常量池 -> 字符串缓存

# 在创建字符串之前. 先去小数据池对比. 是否已经存在了该字符串.如果存在了.
# 就不创建新的了. 直接拿原来存在的数据, 省略掉反复重复创建字符串的过程. 节约内存

# 什么数据会被缓存
# 数字, 字符串, 布尔值 =>  都是不可变的数据类型
# 1. 数字
# a = 1000
# b = 1000
# print(id(a), id(b))  # 165830000 165830000

# 2. 字符串. 如果单纯的写字符串. 几乎都会被缓存
# s1 = "alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事"
# s2 = "alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事"
#
# print(id(s1), id(s2)) # 31222064 31222064

# 如果在py文件中写的字符串. 几乎都是缓存的
# 在黑窗口里的写的几乎都不会缓存
# 不同的解释器. 缓存的机制也不一样

# 优点: 可以帮我们快速的创建对象.节省内存.
# 缺点: 缓存如果过大. 响应速度会比较慢
# 不要纠结.

# == 和 is 区别:

# == 比较的是数据, 外贸
# is 比较的是内存地址, 比较身份证号

# lst1 = [1,2,3]
# lst2 = [1,2,3]
# # 列表没有小数据池
# print(id(lst1), id(lst2)) #  166167560 166126408
# print(lst1 == lst2) # True
# print(lst1 is lst2) # False
#
# s1 = "我叫周润发"
# s2 = "我叫周润发"
# print(s1 == s2)
# print(s1 is s2) # 小数据池

# tu1 = ("周一", "周二")
# tu2 = ("周一", "周二")
# print(tu1 is tu2) # 地址不相等 False
# print(tu1 == tu2) # 内容相等 True

# == 比较的是内容 *
# is 比较内存地址 *
# s = "我今天非常的困" # 21个utf-8
# bs = s.encode("gbk") # 把字符串转化成utf-8格式bytes
# # bytes不是给人看的. 给机器用的 *
# # 14个字节   gbk
# # b'\xce\xd2\xbd\xf1\xcc\xec\xb7\xc7\xb3\xa3\xb5\xc4\xc0\xa7'
# # 21个字节   utf-8
# # b'\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0'
# print(bs)

# utf-8和gbk是不能直接转换的, 必须使用unicode来转换 *

# bs = b'\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0'
# # 把字节转化回字符串
# s = bs.decode("utf-8")
# print(s)

# b'\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0'
# 把这个bytes转化成gbk的bytes
# bs = b'\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0'
# # 解码
# s = bs.decode("utf-8")
# print(s)
#
# # 编码
# bss = s.encode("gbk")
# print(bss)

# 关于bytes, 非ascii中的内容. 展示的时候都是\x.. 如果是ascii中的内容. 原样输出
# name = "alex昨天吃多了"
# bs = name.encode("gbk") # b'alex\xd7\xf2\xcc\xec\xb3\xd4\xb6\xe0\xc1\xcb'
# print(bs)
#
# bss = name.encode("utf-8") # b'alex\xe6\x98\xa8\xe5\xa4\xa9\xe5\x90\x83\xe5\xa4\x9a\xe4\xba\x86'
# print(bss)


python-小数据池 and 编码的更多相关文章

  1. python学习笔记:第6天 小数据池和编码转换

    目录 1. id 和 == 2. 小数据池 3. 编码和解码 1. id 和 == id:id是一个内置的函数,可以查看变量存放的内存地址(实际上不是真正的物理地址,这里暂时这样理解),用于判断是变量 ...

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

    小学生都能学会的python(小数据池) 1. 小数据池. 目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象 缓存:int, str, bool. int: 缓存范围 -5~256 ...

  3. Python小数据池,代码块

    今日内容一些小的干货 一. id is == 二. 代码块 三. 小数据池 四. 总结 python小数据池,代码块的最详细.深入剖析   一. id is == 二. 代码块 三. 小数据池 四. ...

  4. python 小数据池,代码块, is == 深入剖析

    python小数据池,代码块的最详细.深入剖析   一. id is == 二. 代码块 三. 小数据池 四. 总结 一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了, ...

  5. python -- 小数据池 is和 == 再谈编码

    1.小数据池 python程序是由代码块构成的,一个代码块的文本作为python程序的执行单元. 代码块:一个模块,一个函数,一个类,甚至一个command命令都是一个代码块,一个文件也是一个代码块, ...

  6. python 浅谈小数据池和编码

    ⼀. ⼩数据池 在说⼩数据池之前. 我们先看⼀个概念. 什么是代码块: 根据提示我们从官⽅⽂档找到了这样的说法: A Python program is constructed from code b ...

  7. 《Python》 代码块、小数据池和编码转换

    一.代码块 Python程序是由代码块构造的.块是一个python程序的文本,他是作为一个单元执行的. 什么是代码块:一个py文件,一个函数,一个文件,一个类都是一个代码块. 作为交互方式输入的每一行 ...

  8. python 小数据池 is和 == 编码解码

    ########################总结######################### 今日主要内容 1. 小数据池, id() 小数据池针对的是: int, str, bool 在p ...

  9. python:id与小数据池与编码

    一.id与小数据池 id:查的是内存地址 a = 100 b = 100 print(a == b)#比较的数值 print(a is b)#比较的是id print(id(a),id(b))#id相 ...

  10. python基础4(小数据池,编码,深浅拷贝)

    1.==与is == 比较值是否相等 is比较内存地址是否相同 2.小数据池 为了节省内存,当数据在一个范围里的时候,两个值相同的变量指向的是小数据池里的同一个地址 数字范围:-5 ~ 256 num ...

随机推荐

  1. 力扣(LeetCode) 136. 只出现一次的数字

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: 输入: [ ...

  2. Rest数据服务查询类-根据id查询

    Rest数据服务查询类 需要iserver data服务支持,但请求的时候,不依赖SuperMap js lib包. 构造函数:QueryById=function(p_params): p_para ...

  3. Django - Python3 常用命令

    1.创建Django 项目 执行命令 django-admin.py startproject project_name 2.创建app 执行命令 注意:要先进入项目目录下,cd project_na ...

  4. Axure 元件的移动效果

    元件的移动主要是指当点击某一元件(登录)时,某些元件会发生移动或者是左右移动的动画效果,先将登录界面设置为动态面板,然后再设置动作 本节主要应用于一下三种场景: 1.当邮箱不为空.密码为空时,点击登录 ...

  5. 用 EasyUEFI 在 Win8/10 中硬盘安装 Ubuntu16.04图文教程

    用 EasyUEFI 在 Win8/10 中硬盘安装 Ubuntu 作者:TeliuTe 来源:基础教程网 1.准备Ubuntu安装文件 1)下载带amd的64位 Ubuntu 桌面版光盘镜像文件,如 ...

  6. Getting Started with Processing 第二,三章总结

    第一章是文化熏陶. 第二章:开始编程 菜单栏中的 Show 的快捷键 Run:进行显示shortcut:可以通过快捷键 cmd + R 执行Present:进行全屏的显示shortcut:可以通过按下 ...

  7. Configuring Groovy SDK within IntelliJ IDEA

    一.原因 IntelliJ IDEA期待一个the standard Groovy SDK    二.解决方案: 下载安装Groovy就可以了   官网下载地址: http://groovy-lang ...

  8. android -------- 安装APK报错:Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE解决方法

    记录一个 DELETE_FAILED_INTERNAL_ERROR Error while Installing APK问题 之前遇到这个问题 方案1 将data/data/目录下该应用的包名的目录删 ...

  9. MySQL事务(二)

    一.事务的隔离级别/锁问题 基本的介绍: 当我们的mysql表,被多个线程或者客户端同时操作时,mysql提供一种机制,可以让不同的事务在操作数据时,具有隔离性. 锁是计算机协调多个进程或线程并发访问 ...

  10. php-fpm的错误日志