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 切片介绍:切片操作符中的第一个数(冒号之前)表示切片 ...
随机推荐
- php curl Problem with the SSL CA cert (path? access rights?)
公司有台老服务器,搭的php的环境,有个负载均横的服务 调用 curl_init 的时候报了 Problem with the SSL CA cert (path? access rights?) 网 ...
- About The Order of The Declarations And Definition When Making a Member Function a Friend.关于使类成员成为另一个类友元函数的声明顺序和定义。
If only member function clear of WindowMgr is a friend of Screen, there are some points need to note ...
- Java 多线程系列 CountDownLatch
CountDownLatch 一个或多个线程等待其他线程完成操作后在在执行 CountDownLatch通过一个计数器来实现,await方法阻塞直到 countDown() 调用计数器归零之后释放所有 ...
- Nginx 如何设置反向代理 多服务器,配置区分开来,单独文件保存单个服务器 server 主机名配置,通过 include 实现
samcao 关注 2015.06.15 10:08* 字数 0 阅读 408评论 0喜欢 0 网络结构如上图.可能你只有一个公网的Ip地址. 但是您的内网有个网站需要映射至外网.而又不想添加其它 ...
- Kafka文件存储机制及partition和offset
转载自: https://yq.aliyun.com/ziliao/65771 参考: Kafka集群partition replication默认自动分配分析 如何为kafka选择合适的p ...
- pdfjs预览pdf文件的两种方式(可复制)
1.以图片形式进行展示: version:采用1.x版本,2.0版本会有字体显示不完整的问题:参考 这里使用1.8.170 <script th:src="@{/pdfjs/build ...
- python基础知识练习题(二)
1. 有两个列表 l1 = [11, 22, 33] l2 = [22, 33, 44] a.获取内容相同的元素列表 li = []l1 = [11, 22, 33] l2 = [22, 33, 44 ...
- Python-第一篇-python初识及变量
<work smart>主动分享成果和经验,与同伴共同成长</smart work> 启文:使用20多种编程语言,对大家说节日快乐 万国码使用16位(至少)表示内容: ASCI ...
- python 基础知识整理
列表推导式 类似 data=[x+1 for x in range(10)]执行结果就是 [1,2,3,4,5,6,7,8,9,10] 还有 even_numbers=[x for x in rang ...
- System.getProperty(String key)方法获取常用系统信息
其中key可以为以下选项: 1.java.version Java 运行时环境版本 2.java.vendor Java 运行时环境供应商 3.java.vendor.url Java 供应商的 UR ...