Python 字符串与编码
PS:这方面的知识后面再深入理解,上述三种编码是目前较广泛的!
- 字符串
- 字节(bytes):Python对
bytes
类型的数据用带b
前缀的单引号
,或者双引号
表示实例:
# Python对bytes类型的数据用带b前缀的单引号,或者双引号表示 t_byte = b'123' print(t_byte) print(type(t_byte)) # 查看t_byte的数据类型
- 运行结果:
- 如果
b'中文'
会怎么样? - 字符串转bytes:以Unicode编码的
str
可以使用encode()
转换指定的bytes
- 使用语法:
"字符串".encode(编码集)
实例:
# 通过字符串.encode(编码集)来获取对应得bytes print("我是字符串".encode("UTF-8")) print('a'.encode("utf-8"))
- 运行结果:
- bytes转str:如果我们从网络或磁盘上读取了字节流,那么读到的数据就是
bytes
。要把bytes
变为str
(字符串),就需要用decode()
方法 - 使用语法: bytes.decode(编码集)
实例:
# decode() 获取bytes对应的字符串 print(b'abc'.decode("Ascii")) print(b'\xe6\x88\x91\xe6\x98\xaf\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2'.decode("utf-8"))
- 运行结果:
- 字符串长度
- len(字符串):获取字符串长度
- 实例:
# len()方法获取字符串长度(字符数) print(len("你好呀!")) # 输出 4 # len()方法获取bytes的字节数 print(len(b'abc')) # 输出 3 print(len(b'\xe6\x88\x91\xe6\x98\xaf\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2')) # 输出15
- 运行结果:
- Python文件头部书写方法:(建议书写)
由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
- 格式化字符串
- 使用
%
来格式化字符串,%d
:整数,%s
:字符串,%f
:浮点数,%x
:十六进制 - 使用语法:"你好,%s"%("世界")
实例:
# 格式化字符串 % print("你好,%s"%("世界")) # 输出 你好,世界
- format() 格式化字符串
- 使用语法:字符串.format()
- 实例:
# 格式化字符串 format() print("你好,{s}".format(s="世界")) # 相当于使用了变量并重新赋值 print("你好,{0}".format("Python")) # 相当于按顺序替换,{0}与format里第一个替换
- 运行结果:
- 使用