• Python基础6_小数据池,编码补充


    一. 小数据池
    代码块:python程序是有代码块构成的,一个代码块的文本作为python程序的执行单元.
    一个模块,一个函数,一个类,甚至每一个command命令都是一个代码块,一个文件也是一个代码块.
    eval()和exec()执行的时候也是一个代码块
    命令行:我们在控制台CMD中输入的python进入的就是python的command模式,在这里也可以写python程序
    二. 小数据池is和==的区别
    1. id()
    通过id()我们可以查看到一个变量表示的值在内存中的地址
    2. is 和 ==
    == 判断左右两端的值是否相等
    is 判断左右两端的=内存地址值是否一致,如果返回True,那可以确定这两个变量使用的是同一个对象
    3. 小数据池
    一种数据缓存机制,也被成为驻留机制
    小数据池只针对:整数,字符串,布尔值. 其他的数据类型不存在驻留机制
    优点:能够提高一些字符串,整数的处理速度,省略了创建对象的过程
    缺点:在"池"中创建或者插入新的内容会花费更多的时间
    对于数字: -5~256是会被加到⼩小数据池中的. 每次使⽤用都是同⼀一个对象.
    对于字符串串:
    1. 如果字符串串的⻓长度是0或者1, 都会默认进⾏行行缓存
    2. 字符串串⻓长度⼤大于1, 但是字符串串中只包含字⺟母, 数字, 下划线时才会缓存
    3. ⽤用乘法的到的字符串串. ①. 乘数为1, 仅包含数字, 字⺟母, 下划线时会被缓存. 如果
    包含其他字符, ⽽而⻓长度<=1 也会被驻存, ②. 乘数⼤大于1 . 仅包含数字, 字⺟母, 下划 线这个时候会被缓存. 但字符串串⻓长度不能⼤大于20
    4. 指定驻留留. 我们可以通过sys模块中的intern()函数来指定要驻留留的内容.
    三. 编码补充
    1.python2使用的是ASCII码表,python3使用的是unicode码表
    在存储和传输时不能直接用unicode,因为太浪费内存,所以必须对字符串进行编码,转换成bytes类型
    2.bytes的表现形式
    ASCII码表的内容(英文,数字,特殊字符):原样输出,表现形式和字符串没区别
    非ASCII码表的内容(中文): b'xe6x88x91xe4 这是两个汉字的utf-8的bytes表现形式
    gbk或utf-8 --> unicode 用decode()解码
    unicode --> gbk或utf-8 用encode()编码
    gbk和utf-8不能相互直接转换,需要unicode来充当中间媒介

  • 相关阅读:
    lvs+keepalived+DR搭建高可用集群
    mysql主从搭建
    按钮点击动态变化
    CSS Module
    CSS实现平行四边形布局
    CSS shapes布局
    SVG SMIL animation动画详解
    Ajax
    jQuery相关宽高
    CSSOM视图
  • 原文地址:https://www.cnblogs.com/guyannanfei/p/10061249.html
Copyright © 2020-2023  润新知