Python str()详解
1. 概述
在Python中,str()是一个内置函数,用于将给定的对象转换为字符串形式。str()函数可以接受任何类型的参数,并返回一个字符串表示。
2. 语法
str()函数的语法如下:
str(object)
其中,object表示要转换为字符串的对象。
3. 参数
str()函数可以接受以下类型的参数:
- 数字类型:整数、浮点数等数字类型可以被转换成字符串。例如:
num = 123
print(str(num)) # 输出:'123'
pi = 3.14159
print(str(pi)) # 输出:'3.14159'
- 布尔类型:将布尔类型的值转换为对应的字符串形式。例如:
flag = True
print(str(flag)) # 输出:'True'
flag = False
print(str(flag)) # 输出:'False'
- 字符串类型:如果传入的参数已经是字符串类型,则str()函数不做任何改变,直接返回原字符串。例如:
s = "Hello, World!"
print(str(s)) # 输出:'Hello, World!'
- 字节类型:可以将字节类型的数据转换成字符串。例如:
b = b'Hello'
print(str(b)) # 输出:'b'Hello''
- 容器类型:可以将列表、元组、字典、集合等容器类型转换为对应的字符串形式。例如:
lst = [1, 2, 3]
print(str(lst)) # 输出:'[1, 2, 3]'
tpl = (4, 5, 6)
print(str(tpl)) # 输出:'(4, 5, 6)'
dct = {'name': 'Alice', 'age': 25}
print(str(dct)) # 输出:"{'name': 'Alice', 'age': 25}"
st = {1, 2, 3}
print(str(st)) # 输出:'{1, 2, 3}'
- 自定义类型:可以通过定义对象的
__str__()
方法来自定义对象如何转换为字符串形式。例如:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"The person's name is {self.name} and age is {self.age}"
p = Person("Bob", 30)
print(str(p)) # 输出:The person's name is Bob and age is 30
4. 返回值
str()函数返回一个字符串对象,该对象是参数对象转换后的字符串形式。
5. 示例
下面是一些使用str()函数的示例代码和结果:
num = 1234
print(type(str(num))) # 输出:str
print(str(num)) # 输出:'1234'
lst = [1, 2, 3]
print(type(str(lst))) # 输出:str
print(str(lst)) # 输出:'[1, 2, 3]'
tpl = (4, 5, 6)
print(type(str(tpl))) # 输出:str
print(str(tpl)) # 输出:'(4, 5, 6)'
dct = {'name': 'Alice', 'age': 25}
print(type(str(dct))) # 输出:str
print(str(dct)) # 输出:"{'name': 'Alice', 'age': 25}"
st = {1, 2, 3}
print(type(str(st))) # 输出:str
print(str(st)) # 输出:'{1, 2, 3}'
b = b'Hello'
print(type(str(b))) # 输出:str
print(str(b)) # 输出:'b'Hello''
flag = True
print(type(str(flag))) # 输出:str
print(str(flag)) # 输出:'True'
6. 注意事项
- 对于自定义类型,如果没有定义
__str__()
方法,则会调用默认的__repr__()
方法。 - str()函数并不总是能够将对象转换为直观的字符串形式。如果需要自定义转换逻辑,应该在对象中定义
__str__()
方法。
7. 总结
本文详细介绍了Python中str()函数的用法和参数。str()函数是将给定对象转换成字符串形式的内置函数,它可以接受任何类型的参数,并返回相应的字符串表示。无论是数字类型、布尔类型、字符串类型还是容器类型,都可以通过str()函数转换成字符串类型。同时,我们还学习了如何通过自定义对象的__str__()
方法来自定义转换逻辑。