对于字符串,我们接触得挺多的。而编码问题,也不时令人头疼的。

由于一开始接触的就是 Python3,所以一些在 Python2 上的编码上的坑我没遇到,甚至在 Python3 上都很少遇到编码问题,因为 Python3 默认的编码是 utf-8,而之前又从 Windows 转到了 Arch,编码问题已经很少遇到了。

不过还是要重新认识一下字符与字节。字节可由指定字符串编码得到,是不可变类型。使用下标获取字节的值时,返回的是整数。这个是没想到的。很多适用于 str 对象的方法也适用于 bytes 对象。

struct 模块提供了一些函数可把字节序列与其他不同的类型互相转换。memoryview 用于共享内存,前面刚碰到过。

除了 utf-8 编码,Python 还内置了许多其他的编码器。不同编码器编码的相同的字符,最终的字节大小可能会不同。

对于 UnicodeEncodeError 和 UnicodeDecodeError,是由于对应编码不能处理字符串 / 字节导致的。而 SyntaxError,则是由于没有声明编码,平台编码不能处理对应模块的 .py 文件。

在处理文件文件时,建议是指定编码打开或写入,不然跨操作系统运行脚本可能会出错。

之后,讲到了规范化 Unicode 字符串。之前是一直没想过这样的问题,一些特殊字符,该怎么搜索?这里给出了答案,那就是使用 unicodedata.normalize 函数提供的

Unicode 规范化。它有四个参数:NFC、NFD、NFKC和NFKD。NFC(Normalization Form C)使用最少的码位构成等价的字符串,而 NFD 把组合字符分解成基字符和单独的组合字符。

在另外两个规范化形式(NFKC 和 NFKD)的首字母缩略词中,字母 K 表示“compatibility”(兼容性)。

一般使用 NFC 保存字符串。后两种转换会有格式损失,但在搜索中却很有用。

还有就是大小写折叠,不仅仅是忽略大小写,而且把其他一些符号改变。书上还介绍了一规范化——把变音符号去掉。

对 Unicode 字符的排序,可使用 key 关键字参数获得我们想要的排序结果。之后就是 Unicode 数据库,里面保存了各种关于 Unicode 的消息。

最后是双模 API,同一函数能接受字符串和字节进行操作。

书上很多问题都没怎么遇到,也没想到会这么复杂,不过相信以后会接触到的。慢慢消化吧。

流畅的python是python3吗_流畅的 Python - 3. 文本与相关推荐

  1. python3 多线程_图解|为什么 Python 多线程无法利用多核

    (给Python开发者加星标,提升Python技能) 来源:后端技术指南针 1.全局解释锁 如题: Python的多线程为什么不能利用多核处理器? 全局解释器锁(Global Interpreter ...

  2. 自学python的经典书籍_有哪些 Python 经典书籍?

    内容太长,完整内容请访问原文: python 3.7极速入门教程9最佳python中文工具书籍下载 筛选了2年内优秀的python书籍,个别经典的书籍扩展到5年内. python现在的主流版本是3.7 ...

  3. python变量定义大全_详解python变量与数据类型

    这篇文章我们学习 Python 变量与数据类型 变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问.在 Python 中 变量命名规定,必须是大小写英文,数字 ...

  4. python编程应用中级_如何利用Python辅助开发HSK中级课程-数据统计篇

    HSK中级(4级)课程的开发难度比1-3级大上许多.原因主要有:生词量翻倍:3级是300个新增词,4级是600个新增词(脑容量明显不够了) 语法数量猛增:3级的语法数量在50左右,而4级的语法数量,基 ...

  5. 学习python最好的书籍_最好的Python书籍

    学习python最好的书籍 Python is an amazing programming language. It can be applied to almost any programming ...

  6. python实现数据可视化_使用Matplotib python实现数据可视化

    python实现数据可视化 I Feel: 我觉得: In today's digital world data has become as important as air. Machines &a ...

  7. python画动物代码_如何用python画简单的动物_后端开发

    python3.x完全兼容python2.x吗?_后端开发 可以说是完全不兼容.相对于Python的早期版本,Python3是一个较大的升级,为了不带入过多的累赘,Python 3.0在设计的时候没有 ...

  8. python数据科学手册_小白入门Python数据科学

    前言 本文讲解了从零开始学习Python数据科学的全过程,涵盖各种工具和方法 你将会学习到如何使用python做基本的数据分析 你还可以了解机器学习算法的原理和使用 说明 先说一段题外话.我是一名数据 ...

  9. python代码编辑器下载_编程猫Python编辑器

    编程猫Python编辑器官方版操作简单,功能强大,能够让学习更轻松,编程不枯燥.它是由编程猫所研发,小朋友们能够通过该软件来制作有趣的小游戏,拥有超多模版!而且编程猫Python编辑器下载很简便. 软 ...

  10. python提示install无效_为什么是python设置.py给我“错误:选项installdir无法识别”错误?...

    当我尝试将python项目安装到自定义的本地python repo中时,我使用以下命令:python setup.py install --install-dir /home/peng/python- ...

最新文章

  1. 调整php-fpm,nginx调整php-fpm
  2. /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高? */
  3. 后台接收富文本内容报错ParserException: syntax error
  4. 我的职场战争--一年来的开发组内战实录
  5. pdf裁边app_哪款手机PDF阅读APP值得推荐?
  6. 如何输入已经以新的TTY运行的Docker容器
  7. python自动化办公要学多久-用 Python 自动化办公能做到哪些有趣或有用的事情?...
  8. 重大危机引发的公司经营战略问题回顾
  9. java batik_使用BATIK解析SVG生成PNG图片
  10. 中文文字校对软件,找我们,字根科技
  11. Player-Controlled Cameras
  12. Windows XP下用Modem发送传真(ZZ)
  13. 随着员工转为远程办公,Diligent在所有董事会管理平台中提供无缝视频会议接入,确保安全的虚拟董事会议
  14. 年薪30万IT精英 挥别都市回乡种田务农
  15. layui 表格数据源_学习数据分析,这些超好用的数据分析工具你必须知道!|数据挖掘|数据源|oracle...
  16. 初识MIMO(六):MU-MIMO的仿真
  17. 迅为RK3568开发板Debian系统安装ToDesk
  18. JMeter元件详解之逻辑控制器
  19. Android平板怎么截屏,ipad mini怎么截图 iPad/iPad mini截图技巧图解
  20. 浏览器打不开服务器网页,浏览器打不开某几个网页,这样来解决

热门文章

  1. 小白能读懂的 《手把手教你学DSP(TMS320X281X)》第三章 2020-12-25
  2. LCD1602字符串显示(STM32F103)
  3. InstallShield 2020 基本使用教程
  4. Linux环境下FFMPEG的安装与配置
  5. 矩阵分析与应用(四)——逆矩阵、广义逆矩阵和Moore-Penrose逆矩阵
  6. 取消字体许可限制_字体许可和使用:您需要知道的
  7. Data Binding 指南
  8. GPS数据格式解析源代码举例
  9. Win10 如何配置JDK环境变量
  10. 视频截图 使用ffmpeg_mencoder