`str()`函数可以将其他类型的数据转换为字符串类型
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字符串,方便进行数据的传输和存储。
