在最新的 Python 3 版本中,字符串是以 Unicode 编码的,也就是说, Python 的字符串支持多语言
Python 的字符串类型是 str, 如果要在网络上传输,或者保存到磁盘上,就需要把 str 变为 bytes 。
>>为了避免乱码问题,应当始终坚持使用UTF-8编码对 str 和 bytes 进行转换 <<
str和bytes的区别
1)str 一个字符对应若干个字节 , 但 bytes 的每个字符都只占用一个字节。(将多字节的字符分解为单字节的多字符)
>>> 'ABC'.encode('ascii') b'ABC' >>> '中文'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87'
在 bytes 中,无法显示为 ASCII 字符的字节,用 \x## 显示。
2)bytes 字符带前缀,带引号
.py文件中含中文要用utf-8编码
#!/usr/bin/env python3 # -*- coding: utf-8 -*-
第一行注释是为了告诉 Linux/OS X 系统,这是一个 Python 可执行程序, Windows 系统会忽略这个注释;
第二行注释是为了告诉 Python 解释器,按照 UTF-8 编码读取源代码,否则,你在源代码中写的中文 输出可能会有乱码。
>> 编辑器用 UTF-8 without BOM<<
字符串格式化 问题
>>> 'Hello, %s' % 'world' 'Hello, world' >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000) 'Hi, Michael, you have $1000000.'
% 运算符
就是用来格式化字符串的。在字符串内部有几个 %? 占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个 %? ,括号可以省略。
转义,用 %% 来表示一个 %
>>> 'growth rate: %d %%' % 7 'growth rate: 7 %'
占位符 替换内容 %d 整数 %f 浮点数 %s 字符串 %x 十六进制整数format()
另一种格式化字符串的方法是使用字符串的 format() 方法,它会用传入的参数依次替换字符串内的占位符 {0} 、 {1}…… ,不过这种方式写起来比 % 要麻烦得多:
>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125) 'Hello, 小明, 成绩提升了 17.1%'
以上就是浅谈python学习之字符编码与字符串的详细内容,更多请关注Gxl网其它相关文章!
查看更多关于浅谈python学习之字符编码与字符串的详细内容...