1、字符串编码,python中str 用来表示 Unicode 字符,bytes 用来表示二进制数据。str 类型和 bytes 类型之间就需要使用 encode() 和 decode() 方法进行转换,其中编码解码需要使用对应的编码格式。
str.encode(encoding='UTF-8',errors='strict')
encoding -- 要使用的编码,如"UTF-8"。
errors -- 设置不同错误的处理方案。
默认为 'strict',遇到非法字符就抛出异常。
其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace'等。
返回编码后的字符串。
str.decode(encoding='UTF-8',errors='strict')
参数和返回同encode
例子如下:
a = '天气'
print(type(a))
b = bytes(a,encoding='utf-8')
print(b)
print(type(b))
c = str(b,encoding='utf-8')
print(c)
print(type(c))
对应输出:
<class 'str'>
b'\xe5\xa4\xa9\xe6\xb0\x94'
<class 'bytes'>
天气
<class 'str'>
2、一般在.py文件能看到如下这样的写法:
# -*- coding: gbk -*-
表示该.py文件应该以什么编码方式读取和保存,在python3中默认是utf-8。注意: “# -*- coding: gbk -*-” 要写在文件开头才会起作用,因为python解释器首先需要确定编码类型。其中读取文件就是解码的过程,将utf-8编码的文件解码写入内存,所以我们看到的都是str(Unicode 编码),对应保存文件就是编码过程。
3、字符串常用函数
str.split(str="", num=string.count(str)).
参数:
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。默认为 -1, 即分隔所有。
返回值:
返回分割后的字符串列表
a = '天气|湿度|温度'
print(a.split('|'))
结果:
['天气', '湿度', '温度']
str.strip([chars]);方法用于移除字符串头尾指定的字符(默认为空格)或字符序列。
a = 'tt 天气|湿度|温度 tt'
print(a.strip('tt'))
结果:
天气|湿度|温度
类似的还有lstrip,rstrip,只不过一个方向从左或者右开始。
str.startswith(substr, beg=0,end=len(string))检查字符串是否是以指定子字符串 substr 开头, 是则返回 True,否则返回 False。
如果beg 和 end 指定值,则在指定范围内检查
a = 'tt 天气|湿度|温度 tt'
print(a.startswith('tt'))
输出:
True
str.endswith(suffix, beg=0, end=len(string))
检查字符串是否以 suffix 结束,如果 beg 或者 end 指定则检查指定的范围内
是否以 suffix 结束,如果是,返回 True,否则返回 False。
a = 'tt 天气|湿度|温度 tt2'
print(a.endswith('tt2'))
输出:
True
str.find(str, beg=0, end=len(string))
检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,
则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
a = 'tt 天气|湿度|温度 tt2'
print(a.find('天气'))
输出:
3
str.index(str, beg=0, end=len(string))类似find方法,只不过str不存在时会报异常
len(string) 返回字符串长度
a = 'tt123tt2'
print(len(a))
输出:
8
replace(old, new [, max])
把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。
a = 'tt123tt2eew2cffw32'
print(a.replace('2','9',2))
输出:
tt193tt9eew2cffw32
count(str, beg= 0,end=len(string))
返回 str 在 string 里面出现的次数,
如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
a = 'tt123tt2eew2cffw32'
print(a.count('2',1,3)) #输出0
print(a.count('2',1,4)) #输出1
类似这种 rfind() 函数,带有一个字母 r ,一般从右边即末尾开始操作。字符串操作函数还有很多,记录一些遇到过的。
微信公众号同步更新内容,欢迎关注学习