📜  Python str()

📅  最后修改于: 2020-09-20 04:35:16             🧑  作者: Mango

str() 函数返回给定对象的字符串版本。

str()的语法为:

str(object, encoding='utf-8', errors='strict')

str()参数

str()方法采用三个参数:

  1. object-要返回其字符串表示形式的object 。如果未提供,则返回空字符串
  2. encoding-给定对象的编码。未提供时为UTF-8的默认值。
  3. 错误-解码失败时的响应。默认为'strict'

errors有六种类型:

  1. 严格-默认响应,失败时会引发UnicodeDecodeError异常
  2. ignore-从结果中忽略无法编码的Unicode
  3. replace-将无法编码的Unicode替换为问号
  4. xmlcharrefreplace-插入XML字符引用而不是无法编码的Unicode
  5. backslashreplace-插入\uNNNN espace序列而不是无法编码的Unicode
  6. namereplace-插入\N{...}转义序列,而不是无法编码的Unicode

从str()返回值

str()方法返回一个字符串 ,该字符串被视为给定对象的非正式或可打印的表示形式。

示例1:转换为字符串

如果未提供encodingerrors参数,则str()内部调用对象的__str__()方法。

如果找不到__str__()方法,则调用repr(obj)。

result = str(10)
print(result)

输出

10

注意:结果变量将包含一个字符串。

也可以在Python控制台上尝试这些命令。

>>> str('Adam')
>>> str(b'Python!')

示例2:str()如何处理字节?

如果提供了encodingerrors参数,则第一个参数object应当为类似字节的对象 (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'设置为errors ='ignore' 。因此, Python忽略了str()无法解码的字符。