Python中str()和repr()函数的区别

转自:http://www.weidianyuedu.com/content/4513051726846.html

在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str() 或者 repr() 。

区别与使用
函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释器读取的形式(如果没有等价的语法,则会发生SyntaxError 异常), 适合开发和调试阶段使用。

number = 123456789
type(str(number))
<class ‘str’>

type(repr(number))
<class ‘str’>

print(repr(number))
123456789

print(str(number))
123456789
两个函数返回的类型是相同的,值也是相同的。

print(str(‘123456789’))
123456789

print(repr(‘123456789’))
‘123456789’
但当我们把一个字符串传给 str() 函数再打印到终端的时候,输出的字符不带引号。而将一个字符串传给 repr() 函数再打印到终端的时候,输出的字符带有引号。

造成这两种输出形式不同的原因在于:

print 语句结合 str() 函数实际上是调用了对象的 str 方法来输出结果。而 print 结合 repr() 实际上是调用对象的 repr 方法输出结果。下例中我们用 str 对象直接调用这两个方法,输出结果的形式与前一个例子保持一致。

print(‘123456789’.repr())
‘123456789’

print(‘123456789’.str())
123456789

上一篇:字符穿数组和字符数组的研究


下一篇:[Vulhub] Weblogic SSRF 漏洞