博客
关于我
python -- 小数据池 is和 == 再谈编码
阅读量:806 次
发布时间:2023-03-05

本文共 1059 字,大约阅读时间需要 3 分钟。

Python程序的执行单元是代码块,包括模块、函数、类甚至命令行命令。代码块也可以是文件或通过eval()exec()执行的内容。在命令行中输入python进入的是Python的命令模式,每条命令都可以视为一个代码块。

小数据池(String Iterning)

小数据池是一种数据缓存机制,类似于常量池。它只存储以下不可变数据类型:整数(int)、字符串(str)和布尔值(bool)。几乎所有的字符在Python文件中都会被缓存。

小数据池的规则:

  • 0到1个字符的字符串都会被缓存。
  • 长度大于1且仅包含数字、字母或下划线的字符串会被缓存。
  • 乘法字符串:乘数为1且仅包含数字、字母或下划线的字符串会被缓存;乘数大于1且长度不超过20且仅包含上述字符的字符串也会被缓存。
  • 手动指定缓存内容:可以通过sys.intern()函数定制小数据池的内容。
  • is与 ==

    • ==:检查两个对象的值是否相等,比较的是内容。
    • is:检查两个对象的内存地址是否相同,只有当两个变量指向同一个对象时才返回True

    例如:

    a = 123b = 123print(id(a))  # 输出内存地址print(id(b))  # 输出不同的内存地址print(a is b)  # 输出True,因为两个变量指向同一个整数对象

    编码补充

    编码是将字符转换为字节的过程,常用编码格式有:

  • ASCII:8位,支持英文字母、数字和部分特殊字符。
  • GBK:16位,支持中文、日文、韩文等多字母语言。
  • Unicode:32位,支持所有语言的全面表示。
  • UTF-8:可变长度,广泛应用于国际化文本。
  • 在Python中,默认编码为Unicode,字符串是Unicode字符串。对于文件操作,默认编码为ASCII。在处理多语言文本时,需先转换为Unicode再进行编码和解码。

    使用编码工具:

    • encode():将字符串编码为指定格式。
    • decode():将字节数据解码为字符串。

    注意事项:

    • 不同编码格式之间不能直接转换,需通过Unicode转换。
    • UTF-8和GBK等编码格式转换需先转为Unicode再转换。

    例如:

    m = '今天晚上想看什么书!'a = m.encode('gbk')  # 返回GBK编码后的字节串b = m.encode('utf-8')  # 返回UTF-8编码后的字节串

    通过小数据池优化内存使用,避免重复创建字符串对象,提升性能。同时,理解is==的区别,正确选择使用场景。编码与解码也是保证数据正确传输的重要环节。

    转载地址:http://ssafk.baihongyu.com/

    你可能感兴趣的文章
    Python random模块seed理解
    查看>>
    python range()函数
    查看>>
    Python rdflib可传递查询
    查看>>
    python redis 集群_python 搭建redis集群
    查看>>
    python redis连接,在Python中使用Redis连接池的正确方法
    查看>>
    python regex_Python RegEx
    查看>>
    python requests post 中文结果请求得到unicode
    查看>>
    Python Requests接口自动化测试实战
    查看>>
    Python requests模块
    查看>>
    python request与grequests该如何选择
    查看>>
    python request模块
    查看>>
    Python requirements.txt的使用方法
    查看>>
    Python REST(Web 服务)框架的推荐?
    查看>>
    Python rsa 加密
    查看>>
    Python RSA操作
    查看>>
    Python轻松实现统计学中重要的相关性分析
    查看>>
    Python scrapy 常见问题及解决 【遇到的坑】
    查看>>
    Python Seborn热图数据的动态更新
    查看>>
    Python Seborn绘制空白直方图
    查看>>
    Python Selenium - 获取href值
    查看>>