Python 的字符串
Python 的字符串
在最新的 Python 3 版本中,字符串是以 Unicode 编码的,也就是说,Python 的字符串支持多语言,例如:
print('包含中文的 str')
对于单个字符的编码,Python 提供了 ord() 函数获取字符的整数表示(方式),chr() 函数把编码转换为对应的字符:
print(ord('中'))
print(ord('A'))
print(chr(66))
print(chr(25991))
测试结果:
20013
65
B
文
如果知道字符的整数编码,还可以用十六进制这样写 str :
print('\u4e2d\u6587')
输出结果:
中文
两种写法完全是等价的。由于 Python 的字符串类型是 str ,所以在内存中以 Unicode的编码格式表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘里面,就需要把str类型字符串变为以字节为单位的 bytes 。Python 对 bytes 类型的数据用带 b 前缀的单引号或双引号表示,如:x = b'ABC'。
注意区分 'ABC' 和 b'ABC',前者是str字符串类型 ,后者虽然内容显示得和前者一样,但 bytes 的每个字符都只占用一个字节,两者在内存里面得“地址”是不一样的。
如果我们要把 bytes 变为 str字符串型 ,就需要用 decode() 方法:
print(b'ABC'.decode('ascii'))
要计算 str 包含多少个字符,可以用 len() 函数,len() 函数计算的是str的字符数,如果换成 bytes ,len() 函数就计算字
节数:
print( len('ABC'))
print(len(b'ABC'))
运行结果:
3
3
由于 Python 源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为 UTF-8 编码。当Python 解释器读取源代码时,为了让它按 UTF-8 编码读取,我们通常在文件开头写上这两行:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行注释是为了告诉 Linux/OS X 系统,这是一个 Python 类型的可执行程序,Windows 的系统会忽略这个注释;第二行注释是为了告诉 Python 的解释器,让解释器按照 UTF-8 编码读取源代码,如果不添加,那么在源代码中写的中文在输出的时候可能会有乱码。而且有时候申明了 UTF-8 编码也并不意味着 .py结尾的文件就是 UTF-8 编码的,必须要确保你使用的文本编辑器正在使用 UTF-8 without BOM类型的编码格式。举例如下:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
s = 'Python-中文' #有中文字符
print(s)
b = s.encode('utf-8')
print(b)
print(b.decode('utf-8'))
这里提个建议,在进行编码的时候不要用电脑或工具本身自带笔记本来进行编写,有时候这些记事本会“自作聪明”的添加一些未知的字符串进去,而导致程序报错,你却找不到原因,编码工具可以使用submit Text、Visual Studio Code、Notepad、UItrEdit等,具体使用就看个人的使用习惯了。
Python 的字符串的更多相关文章
- Python格式化字符串~转
Python格式化字符串 在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作 ...
- python学习--字符串
python的字符串类型为str 定义字符串可以用 ‘abc' , "abc", '''abc''' 查看str的帮助 在python提示符里 help(str) python基于 ...
- Python格式化字符串和转义字符
地址:http://blog.chinaunix.net/uid-20794157-id-3038417.html Python格式化字符串的替代符以及含义 符 号 说 明 ...
- [转载] python 计算字符串长度
本文转载自: http://www.sharejs.com/codes/python/4843 python 计算字符串长度,一个中文算两个字符,先转换成utf8,然后通过计算utf8的长度和len函 ...
- Python基础-字符串格式化_百分号方式_format方式
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- python判断字符串
python判断字符串 s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小 ...
- Python格式化字符串
在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的pr ...
- python(七)字符串格式化、生成器与迭代器
字符串格式化 Python的字符串格式化有两种方式:百分号方式.format方式 1.百分号的方式 %[(name)][flags][width].[precision]typecode (name) ...
- Python 的字符串格式化和颜色控制
(部分内容源自武神博客和网络收集.) Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两 ...
- python反转字符串(简单方法)及简单的文件操作示例
Python反转字符串的最简单方法是用切片: >>> a=' >>> print a[::-1] 654321 切片介绍:切片操作符中的第一个数(冒号之前)表示切片 ...
随机推荐
- .Net 操作证书文件
一..Net加签与验签.经过测试,发现使用同一套私钥和公钥,JAVA和.Net可以实现互通 1.1 私钥加签 公钥验签 public void Encode() { try { var path = ...
- C# DataConstruct 数据结构关于 Array,ArrayList,List,HashTable,Dictionnary的学习记录
Array: 数组,开辟连续存储的内存存储数据.Array获取数据的时间复杂度是O(1),但是要删除数据却是开销很大的,因为这需要重排数组中的所有数据 优点: 1.查询速度快,可以利用索引快速查询到对 ...
- Picnic Planning POJ - 1639(最小k度生成树)
The Contortion Brothers are a famous set of circus clowns, known worldwide for their incredible abil ...
- unity runtime时导入fbx文件
TriLib is a Unity model loader package designed to allow the user to load various 3D model formats i ...
- 19.3.5日,报关于表单验证和ui-router
今天完成的事情: (1)学习angularJS表单验证 可以验证的内容<input type="text" minlength="2" maxlength ...
- 2018-4-5-cadence skill
skill 是 Cadence 提供的二次开发语言,可以做很多有用的二次开发. 开发参考手册:<algroskill><sklangref><sklanguser> ...
- 我的 FPGA 学习历程(12)—— 电子钟项目准备
初学 FPGA 的时候,我们总是存在很多疑问,比如:xilinx 和 altera 的 FPGA 那种比较好.verilog 语言被如何综合成具体硬件电路.RTL 级电路是什么意思等等.现在我们就不会 ...
- Spark集群部署(standLone)模式
安装部署: 1. 配置spark为1个master,2个slave的独立集群(Standlone)模式, 可以在VMWare中构建3台运行Ubuntu的机器作为服务器: master主机配置如下: ...
- 左倾堆C++实现
#include <iostream> #include <vector> #include <queue> using namespace std; templa ...
- mac上配置react-native环境run-ios/run-android命令遇到的问题
新报错(rn版本:0.53.3)2018.3.6 今天在搞react-native环境时,遇到了一些坑,这里记录一下. 首先最重要的一点是一定要按官网一步一步来,不然可能会出现一些奇奇怪怪的问题! 官 ...