流畅的python是python3吗_流畅的 Python - 3. 文本与
对于字符串,我们接触得挺多的。而编码问题,也不时令人头疼的。
由于一开始接触的就是 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. 文本与相关推荐
- python3 多线程_图解|为什么 Python 多线程无法利用多核
(给Python开发者加星标,提升Python技能) 来源:后端技术指南针 1.全局解释锁 如题: Python的多线程为什么不能利用多核处理器? 全局解释器锁(Global Interpreter ...
- 自学python的经典书籍_有哪些 Python 经典书籍?
内容太长,完整内容请访问原文: python 3.7极速入门教程9最佳python中文工具书籍下载 筛选了2年内优秀的python书籍,个别经典的书籍扩展到5年内. python现在的主流版本是3.7 ...
- python变量定义大全_详解python变量与数据类型
这篇文章我们学习 Python 变量与数据类型 变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问.在 Python 中 变量命名规定,必须是大小写英文,数字 ...
- python编程应用中级_如何利用Python辅助开发HSK中级课程-数据统计篇
HSK中级(4级)课程的开发难度比1-3级大上许多.原因主要有:生词量翻倍:3级是300个新增词,4级是600个新增词(脑容量明显不够了) 语法数量猛增:3级的语法数量在50左右,而4级的语法数量,基 ...
- 学习python最好的书籍_最好的Python书籍
学习python最好的书籍 Python is an amazing programming language. It can be applied to almost any programming ...
- python实现数据可视化_使用Matplotib python实现数据可视化
python实现数据可视化 I Feel: 我觉得: In today's digital world data has become as important as air. Machines &a ...
- python画动物代码_如何用python画简单的动物_后端开发
python3.x完全兼容python2.x吗?_后端开发 可以说是完全不兼容.相对于Python的早期版本,Python3是一个较大的升级,为了不带入过多的累赘,Python 3.0在设计的时候没有 ...
- python数据科学手册_小白入门Python数据科学
前言 本文讲解了从零开始学习Python数据科学的全过程,涵盖各种工具和方法 你将会学习到如何使用python做基本的数据分析 你还可以了解机器学习算法的原理和使用 说明 先说一段题外话.我是一名数据 ...
- python代码编辑器下载_编程猫Python编辑器
编程猫Python编辑器官方版操作简单,功能强大,能够让学习更轻松,编程不枯燥.它是由编程猫所研发,小朋友们能够通过该软件来制作有趣的小游戏,拥有超多模版!而且编程猫Python编辑器下载很简便. 软 ...
- python提示install无效_为什么是python设置.py给我“错误:选项installdir无法识别”错误?...
当我尝试将python项目安装到自定义的本地python repo中时,我使用以下命令:python setup.py install --install-dir /home/peng/python- ...
最新文章
- 调整php-fpm,nginx调整php-fpm
- /* * 编程第二题(20分): 	一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高? */
- 后台接收富文本内容报错ParserException: syntax error
- 我的职场战争--一年来的开发组内战实录
- pdf裁边app_哪款手机PDF阅读APP值得推荐?
- 如何输入已经以新的TTY运行的Docker容器
- python自动化办公要学多久-用 Python 自动化办公能做到哪些有趣或有用的事情?...
- 重大危机引发的公司经营战略问题回顾
- java batik_使用BATIK解析SVG生成PNG图片
- 中文文字校对软件,找我们,字根科技
- Player-Controlled Cameras
- Windows XP下用Modem发送传真(ZZ)
- 随着员工转为远程办公,Diligent在所有董事会管理平台中提供无缝视频会议接入,确保安全的虚拟董事会议
- 年薪30万IT精英 挥别都市回乡种田务农
- layui 表格数据源_学习数据分析,这些超好用的数据分析工具你必须知道!|数据挖掘|数据源|oracle...
- 初识MIMO(六):MU-MIMO的仿真
- 迅为RK3568开发板Debian系统安装ToDesk
- JMeter元件详解之逻辑控制器
- Android平板怎么截屏,ipad mini怎么截图 iPad/iPad mini截图技巧图解
- 浏览器打不开服务器网页,浏览器打不开某几个网页,这样来解决