python 内置函数之str(二) 持续更新
7. encode
此方法用途广泛,需重点注意与学习。(因为其实很多东西都是以字符串的形式进行传输的,比如图片,音频等)
介绍:
"""
Encode the string using the codec registered for encoding.
encoding
The encoding in which to encode the string.
errors
The error handling scheme to use for encoding errors.
The default is 'strict' meaning that encoding errors raise a
UnicodeEncodeError. Other possible values are 'ignore', 'replace' and
'xmlcharrefreplace' as well as any other name registered with
codecs.register_error that can handle UnicodeEncodeErrors.
"""
即:
使用为编码注册的编解码器对字符串进行编码。 encoding 对字符串进行编码的编码。errors 用于编码错误的错误处理方案。默认为“严格”,表示编码错误会引发 UnicodeEncodeError。其他可能值是 ‘ignore’、‘replace’ 和 ‘xmlcharrefreplace’ 以及使用 codecs.register_error 注册的任何其他可以处理 UnicodeEncodeErrors 的名称。
- 参数:
- encoding – 要使用的编码,如"UTF-8"。
- errors – 设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值。
- 返回值:
该方法返回编码后的字符串。
代码示例:
a = "snfsahgasngk你好asajl214哈哈哈sfmlkkp124"
x = a.encode('UTF-8', 'strict')
y = a.encode('GBK', 'strict')
print(a)
print(x)
print(y)
'''结果:
snfsahgasngk你好asajl214哈哈哈sfmlkkp124
b'snfsahgasngk\xe4\xbd\xa0\xe5\xa5\xbdasajl214\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88sfmlkkp124'
b'snfsahgasngk\xc4\xe3\xba\xc3asajl214\xb9\xfe\xb9\xfe\xb9\xfesfmlkkp124'
'''
8. decode
编码用encode,解码用decode,对比学习,印象能更加深刻。
介绍:
decode() 方法以指定的编码格式解码 bytes 对象。默认编码为 ‘utf-8’。
- 参数:
encoding – 要使用的编码,如"UTF-8"。
errors – 设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值。 - 返回值:
该方法返回解码后的字符串。
注意:
调用该方法的对象应该是一个已经编码的字符串,否则会报错。
代码示例:
a = "snfsahgasngk你好asajl214哈哈哈sfmlkkp124"
x = a.encode('UTF-8', 'strict')
y = x.decode('utf-8', 'strict')
print(a)
print(x)
print(y)
'''结果:
snfsahgasngk你好asajl214哈哈哈sfmlkkp124
b'snfsahgasngk\xe4\xbd\xa0\xe5\xa5\xbdasajl214\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88sfmlkkp124'
snfsahgasngk你好asajl214哈哈哈sfmlkkp124
'''
9. endswith
介绍:
"""
S.endswith(suffix[, start[, end]]) -> bool
Return True if S ends with the specified suffix, False otherwise.
With optional start, test S beginning at that position.
With optional end, stop comparing S at that position.
suffix can also be a tuple of strings to try.
"""
即:
S.endswith(suffix[, start[, end]]) -> bool 如果 S 以指定的后缀结尾,则返回 True,否则返回 False。使用可选 start,测试从该位置开始的 S。使用可选 end,停止比较S 在那个位置。suffix 也可以是字符串的元组来尝试。
简单来说:
该方法用于判读字符串的结尾后缀是否为你传进去的字符或字符串,你可以通过传参来控制检测的初始位置和结束位置。
- 参数
- 需要查找的字符或字符串。
- 开始查找的位置。
- 结束查找的位置。
注:查找区间若不传,则默认为[ 0, 结束]。且,区间为左闭右开
[开始,结束)。
- 返回值
True:代表所查找的字符(串)在查找区间的末尾。
False: 代表所查找的字符(串)不在查找区间的末尾。
代码示例:
a = "snfsahgasngk你好asajl21a4哈哈哈sfmlkkp124"
x = a.endswith('666')
print(a.find('a4')) # 找到第一个出现a4的索引,方便测试
y = a.endswith('a4', 10, 23) # 特别注意:区间为左闭右开,即[10, 23) 等价于[10, 22]
print(x)
print(y)
'''结果:
21
False
True
'''
10. find
介绍:
"""
S.find(sub[, start[, end]]) -> int
Return the lowest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Return -1 on failure.
"""
翻译:
S.find(sub[, start[, end]]) -> int 返回 S 中找到子字符串 sub 的最低索引,使得 sub 包含在 S[start:end] 中。可选参数 start 和 end被解释为切片符号。失败时返回 -1。
简单来说:
你传入一个字符(串),返回它出现的第一次的第一个字符的索引。
你也可以控制查找区间。
- 参数:
- 需要查找的字符(串)。
- 查找的初始位置。
- 结束查找的位置。
- 返回值:
一个整形数字,代表发现该字符(串)的第一个位置索引。若没找到,返回-1。
代码示例:
a = "snfsahgasngk你好asajl21a4哈哈哈sfmlkkp124"
y = a.find('21', 5, 100) # 特别注意:区间为左闭右开
print(a.find('9'))
print(y)
'''结果:
-1
19
'''