欢迎访问宙启技术站
智能推送

`str()`函数可以将其他类型的数据转换为字符串类型

发布时间:2023-06-17 03:16:18

1. 概述

Python中的str()函数是一个内置函数,用于将不同类型的数据转换为字符串类型。str()函数参数可以是整数、浮点数、布尔值、列表、元组、字典、集合、对象等类型的数据。

该函数返回与输入的参数类型相对应的字符串类型。这是Python中一种非常常用的数据类型转换方法,通常用于将非字符串类型的数据转换为字符串类型,以便输出或保存到文件中。

2. 基本用法

str()函数的基本语法如下:

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

参数 object:要转换为字符串类型的数据。

参数 encoding:表示字符串的编码方式。默认为'utf-8'。

参数 errors:可选,用于指定编码错误的处理方式。默认为'strict',表示严格处理编码错误。

下面举几个例子来说明str()函数的基本用法:

# 把数字转换为字符串

print(str(1234))

# 把小数转换为字符串

print(str(3.14))

# 把布尔值转换为字符串

print(str(True))

# 把列表转换为字符串

print(str([1, 2, 3]))

# 把元组转换为字符串

print(str((4, 5, 6)))

# 把字典转换为字符串

print(str({1:'one', 2:'two', 3:'three'}))

# 把集合转换为字符串

print(str({1, 2, 3}))

# 把对象转换为字符串

class Test:

    pass

t = Test()

print(str(t))

输出结果:

1234

3.14

True

[1, 2, 3]

(4, 5, 6)

{1: 'one', 2: 'two', 3: 'three'}

{1, 2, 3}

<__main__.Test object at 0x7ff2edbceb20>

3. 特殊用法

3.1 转换为可打印的字符串

str()函数可以将对象转换为可打印的字符串。对于自定义的对象类型,如果没有定义__str__()方法,则默认会调用对象的__repr__()方法来进行转换。

下面举一个例子来说明:

class Student:

    def __init__(self, name, age):

        self.name = name

        self.age = age

stu = Student('Jack', 18)

# 使用print()函数输出对象

print(stu)

# 使用str()函数输出对象

print(str(stu))

输出结果:

<__main__.Student object at 0x7ff2edbce670>

<__main__.Student object at 0x7ff2edbce670>

可以看到,输出的结果并不是我们期望的“Jack,18”,而是对象的地址。这是因为我们没有定义__str__()方法。

接下来,我们重写__str__()方法来实现期望的输出:

class Student:

    def __init__(self, name, age):

        self.name = name

        self.age = age

    def __str__(self):

        return '{},{}'.format(self.name, self.age)

stu = Student('Jack', 18)

# 使用print()函数输出对象

print(stu)

# 使用str()函数输出对象

print(str(stu))

输出结果:

Jack,18

Jack,18

可以看到,输出的结果符合我们预期的结果。我们可以使用str()函数将对象转换为可打印的字符串,它会自动调用对象的__str__()方法,如果没有定义该方法,则会调用对象的__repr__()方法。

3.2 转换为JSON字符串

str()函数还可以将Python的字典对象转换为JSON字符串。JSON是一种轻量级数据交换格式,用于客户端和服务器之间的数据传输。Python内建的json模块提供了对JSON编码和解码的支持。

下面举个例子来说明如何将字典对象转换为JSON字符串:

import json

# 定义字典对象

dict_obj = {"name": "Jack", "age": 18, "gender": "male"}

# 转换为JSON字符串

json_str = json.dumps(dict_obj)

# 输出JSON字符串

print(json_str)

输出结果:

{"name": "Jack", "age": 18, "gender": "male"}

可以看到,输出的结果是一个JSON字符串,它和Python对象之间存在着映射关系。如果需要将JSON字符串转换为Python对象,则需要使用json.loads()函数。

4. 结论

str()函数是Python内置函数之一,它可以将不同类型的数据转换为字符串类型。通过str()函数可以将数字、布尔值、列表、元组、字典、集合、对象等转换为字符串类型,可以方便地输出或保存到文件中。

对于自定义对象类型,str()函数可以将对象转换为可打印的字符串。如果没有定义__str__()方法,则默认会调用对象的__repr__()方法。

此外,str()函数还可以将Python的字典对象转换为JSON字符串,方便进行数据的传输和存储。