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

Python中的str函数-将非字符串对象转换为字符串

发布时间:2023-06-16 15:41:06

在Python中,str()函数是一个内置函数,它的主要作用是将非字符串对象转换成字符串。

这个函数非常常用,因为在Python中,字符串是一种基本数据类型,经常会涉及到字符串的相关操作。而一些其他的对象,比如数字、列表、元组等,由于其数据类型的特殊性,在某些情况下需要将其转换成字符串进行操作或输出。

下面我们来看看str()函数的用法和示例。

1. str()函数的语法

str()的语法非常简单,只包含一个参数,即要转换为字符串的对象。其语法如下:

str(object='')

其中,object是一个对象,可以是数字、列表、元组等非字符串类型。

2. str()函数的参数

str()函数只接受一个参数,可以是任何Python 中的数据类型,包括布尔型、整型、浮点型、列表、元组、字典等。如果参数为空,则返回空字符串。

3. str()函数的返回值

str()函数返回一个字符串,对于不同的数据类型,其返回值的形式也不相同。比如对于数字,返回的是由该数字组成的字符串,而对于列表或元组,则返回其内部的元素。

下面我们来看看一些具体的例子。

4. str()函数的示例

(1)将数字转换成字符串

将数字转换成字符串是最常见的应用之一。使用str()函数可以实现。

num = 100
print(type(num))   # 输出 <class 'int'>

num_str = str(num)
print(type(num_str))   # 输出 <class 'str'>

上面的代码中,先定义了一个数字100,然后使用str()函数将其转换为字符串类型,将其赋值给一个字符串变量num_str。最后打印输出num_str的类型,可以看到,其类型已经变成了字符串。

(2)将列表转换成字符串

将列表转换成字符串也是比较常见的操作之一。使用str()函数可以将列表内部的元素全部转换成字符串,并用逗号隔开。

lst = [1, 2, 3]
lst_str = str(lst)
print(lst_str)   # 输出 [1, 2, 3]

上面的代码中,先定义了一个包含三个元素的列表lst,然后使用str()函数将其转换为字符串类型,并将其赋值给一个字符串变量lst_str。最后打印输出lst_str的类型,可以看到,其类型已经变成了字符串。

需要注意的是,最终转换成字符串的列表中的元素顺序与原列表中的顺序完全相同。

(3)将元组转换成字符串

与列表类似,将元组也可以使用str()函数转换成字符串。

tup = (1, 2, 3)
tup_str = str(tup)
print(tup_str)   # 输出 (1, 2, 3)

上面的代码中,先定义了一个包含三个元素的元组tup,然后使用str()函数将其转换为字符串类型,并将其赋值给一个字符串变量tup_str。最后打印输出tup_str的类型,可以看到,其类型已经变成了字符串。

需要注意的是,将元组转换成字符串后,其包含的元素的顺序完全相同,与原元组相同。

(4)将字典转换成字符串

将字典转换成字符串时,需要注意字典中的键值对是否是字符串类型。如果不是字符串类型,则会抛出TypeError类型的异常。

dict1 = {1: 'one', 2: 'two', 3: 'three'}
dict_str1 = str(dict1)   # 抛出异常:TypeError: 'str' object is not callable

dict2 = {'1': 'one', '2': 'two', '3': 'three'}
dict_str2 = str(dict2)
print(dict_str2)   # 输出 {'1': 'one', '2': 'two', '3': 'three'}

上面的代码中,首先创建了两个字典,dict1和dict2,它们的值是相同的,但是键的类型不同。对于dict1,其键是数字类型,因此将其转换成字符串类型时会抛出TypeError类型的异常;对于dict2,其键是字符串类型,因此可以使用str()函数将其转换成字符串。

需要注意的是,将字典转换成字符串时,其键值对的顺序可能会发生变化,因为字典并没有定义固定的顺序。

(5)将对象转换成字符串

除了数字、列表、元组、字典等基本数据类型之外,还可以将自定义或内置的对象转换成字符串。

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

    def __str__(self):
        return f'{self.name} is {self.age} years old.'

p = Person('Tom', 18)
print(p)   # 输出:Tom is 18 years old.

p_str = str(p)
print(p_str)   # 输出:Tom is 18 years old.

上面的代码中,创建了一个类Person,其中包含姓名和年龄两个属性。在类的定义中,定义了__str__()方法,用于将对象转换成字符串。在创建Person类的实例p之后,可以将其直接输出或使用str()函数进行转换。

需要注意的是,对于自定义对象,可以通过定义__str__()方法来实现转换成字符串的功能。

5. 总结

str()函数是Python中的一个内置函数,用于将非字符串对象转换成字符串。其语法简单,只接受一个参数;返回值的形式与传入的对象的数据类型相关。常见的应用包括将数字、列表、元组、字典等转换成字符串类型,同时也可以将自定义对象转换成字符串。