str()函数返回给定对象的字符串表现形式。
str()的语法为:
str(object, encoding='utf-8', errors='strict')
str() 方法具有三个参数:
object- object要返回其字符串表示形式。如果未提供,则返回空字符串
encoding-给定对象的编码。未提供时默认值为UTF-8。
errors-解码失败时的响应。默认为'strict'。
共有六种类型errors:
strict-默认响应,在失败时引发UnicodeDecodeError异常
ignore -从结果中忽略无法编码的Unicode
replace -将无法编码的Unicode替换为问号
xmlcharrefreplace -插入XML字符引用而不是无法编码的Unicode
backslashreplace-插入\uNNNNespace序列而不是无法编码的Unicode
namereplace-插入\N{...}转义序列而不是无法编码的Unicode
str()方法返回一个字符串,该字符串被视为给定对象的非正式或可打印的表示形式。
如果未提供encoding和errors参数,则在str()内部调用__str__()对象的方法。
如果找不到__str__()方法,则调用repr(obj)。
result = str(10) print(result)
输出结果
10
注意:结果变量将包含一个字符串。
也可以在Python指定台上尝试这些命令。
>>> str('Adam')
>>> str(b'Python!')
如果提供了encoding和errors参数,则第一个参数object应该是一个类似于bytes的对象(bytes或bytearray)。
如果对象是bytes 或 bytearray,则在str()内部进行调用bytes.decode(encoding, errors)。
否则,它将在调用decode()方法之前获取缓冲区中的bytes对象。
# bytes b = bytes('pythön', encoding='utf-8') print(str(b, encoding='ascii', errors='ignore'))
输出结果
pythn
此处,字符'ö'无法通过ASCII解码。因此,它应该给出一个错误。但是,我们已经设置了errors ='ignore'。因此,Python str()函数会忽略无法通过解码的字符。