📅  最后修改于: 2023-12-03 15:19:27.680000             🧑  作者: Mango
在 Python 中,str()
与 repr()
是两个用来转换对象为字符串的函数,它们经常会被混淆和误解。本文将介绍它们的区别和适用场景。
str()
str()
是一个内置函数,用来返回对象的可读性好的字符串表示。它的作用是将任意一个对象转换为字符串类型,并返回一个字符串。例如:
x = 10
print(str(x)) # "10"
y = [1, 2, 3]
print(str(y)) # "[1, 2, 3]"
当你需要在用户界面中显示一些对象时,通常使用 str()
函数,因为它返回的字符串更具有可读性。
repr()
repr()
是另一个内置函数,用来返回一个对象的“官方”字符串表示。它的作用是将任意对象转换为一个可以用来表示对象的字符串,并返回一个字符串。例如:
x = 10
print(repr(x)) # "10"
y = [1, 2, 3]
print(repr(y)) # "[1, 2, 3]"
与 str()
不同的是,repr()
返回的字符串通常是一个程序员可以使用的有效的表达式。这个表达式可以被解释器解释和执行,从而创建和原始对象同样的结果。
以上面的例子来看,两个函数输出的结果相同,但是这并不意味着它们没有区别。我们来看一下另一个例子:
x = 'hello, world!'
print(str(x)) # "hello, world!"
print(repr(x)) # "'hello, world!'"
从输出结果来看,str()
函数是返回了一个可读性好的字符串,而 repr()
函数则是返回了一个包含引号的字符串,这是 Python 中表示字符串的方式之一。
另外一个例子:
x = 10 + 20
print(str(x)) # "30"
print(repr(x)) # "30"
从输出结果来看,两个函数输出的结果是一样的。但是,当我们打印一个列表的时候,它们的输出结果就不同了:
x = [1, 2, 3]
print(str(x)) # "[1, 2, 3]"
print(repr(x)) # "[1, 2, 3]"
也就是说,如果你使用 str()
函数,你将得到一个人类可读的字符串,如果你使用 repr()
函数,你将得到一个可以被 Python 解释器解释的字符串。
str()
函数。repr()
函数。