首页Python【Python内置函数】s...

【Python内置函数】str()函数

Python 提供了许多内置函数,这些函数是Python语言的一部分,可以直接在Python程序中使用而无需导入任何模块。

本系列将会陆续整理分享一些的Python内置函数。

文章配套代码获取有以下两种途径:
  • 通过百度网盘获取:
链接:https://pan.baidu.com/s/11x9_wCZ3yiYOe5nVcRk2CQ?pwd=mnsj 提取码:mnsj
  • 前往GitHub获取
https://github.com/returu/Python_built-in_functions





01
简介

str()函数用于将一个对象转换为字符串类型。

str()函数提供两种主要语法形式:

  • 1、通用对象转字符串:
str(object='')

参数说明:

object:要转换的对象,默认值为空字符串 
返回值:
返回对象的字符串表示。
  • 2、将字节对象解码为字符串
str(object=b'', encoding='utf-8', errors='strict')
参数说明:
  • object:字节对象(bytes);
  • encoding:指定解码时使用的编码格式,默认为‘utf-8’
  • errors:指定解码时的错误处理方式,默认为 ‘strict’。其他常见选项包括:‘ignore’(忽略解码错误)、‘replace’(用替代字符替换无法解码的字节)、‘backslashreplace’(用反斜杠转义序列替换无法解码的字节)、‘xmlcharrefreplace’(用XML字符引用替换无法解码的字节)。

返回值:

返回解码后的字符串。

  • str() 和 repr() 的区别:
str() 用于生成用户友好的字符串表示,通常用于输出显示。
repr() 用于生成更精确的、适合调试的字符串表示,通常可以用于重新创建对象,适合调试。
02
使用

下面是一些使用 str() 函数的示例:

  • 示例 1:将对象转换为字符串

这是str()函数最常见的用法,用于将任意对象转换为字符串。

print(str(123))        # "123"
print(str(3.14))       # "3.14"
print(str(True))       # "True"
print(str([1, 2, 3]))  # "[1, 2, 3]"


  • 示例 2:将字节对象解码为字符串

str()函数的第一个参数是字节对象(bytes)时,它会尝试将字节对象解码为字符串。

# 将字节对象解码为字符串
bytes_obj = b'xe4xb8xadxe6x96x87'  # UTF-8 编码的 "中文"
decoded_str = str(bytes_obj, encoding='utf-8')
print(decoded_str)  # 输出:'中文'

# 使用不同的错误处理方式
bytes_obj = b'xffxfexfd'  # 无法解码的字节
print(str(bytes_obj, encoding='utf-8', errors='ignore'))  # 输出:''
print(str(bytes_obj, encoding='utf-8', errors='replace'))  # 输出:'���'
print(str(bytes_obj, encoding='utf-8', errors='backslashreplace'))  # 输出:'xffxfexfd'


  • 示例 3:自定义对象

如果自定义对象定义了__str__()方法,则str()会调用该方法来获取字符串表示。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f"Person:name={self.name}, age={self.age}"

person = Person("Bob", 30)
str_person = str(person)
print(str_person)  # 输出:Person:name=Bob, age=30

如果对象没有定义__str__()方法,str()会尝试调用对象的__repr__()方法来获取字符串表示。

对于自定义类,如果没有定义专门的__repr__()方法将返回一个用尖括号包围的字符串。该字符串包括对象的类型名称以及某些标识信息(如内存地址)。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # def __repr__(self):
    #     return f"Person:name={self.name} / age={self.age}"

person = Person("Bob", 30)
str_person = str(person)
print(str_person)  # 输出:<__main__.Person object at 0x...>

本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments