标准类型内建函数 str()和 repr() (及 `` 运算符) 简单介绍

内建函数 str() 和 repr() 或反引号运算符(``) 可以方便的以字符串的方式获取对象的内容、类型、数值属性等信息。str()函数得到的字符串可读性好, 而repr()函数得到的字符串通常可以用来重新获得该对象, 通常情况下 obj == eval(repr(obj)) 这个等式是成立的。这两个函数接受一个对象做为其参数, 返回适当的字符串。在下面的例子里, 我们会随机取一些Python 对象来查看他们的字符串表示。

 1 >>> str(4.53-2j)
 2 ‘(4.53-2j)‘
 3 >>>
 4 >>> str(1)
 5 ‘1‘
 6 >>>
 7 >>> str(2e10)
 8 ‘20000000000.0‘
 9 >>>
10 >>> str([0, 5, 9, 9])
11 ‘[0, 5, 9, 9]‘
12 >>>
13 >>> repr([0, 5, 9, 9])
14 ‘[0, 5, 9, 9]‘
15 >>>
16 >>> `[0, 5, 9, 9]`
17 ‘[0, 5, 9, 9]‘

  尽管str(),repr( )和``运算在特性和功能方面都非常相似, 事实上 repr() 和 `` 做的是完全一样的事情,它们返回的是一个对象的“官方”字符串表示, 也就是说绝大多数情况下可以通过求值运算(使用eval()内建函数)重新得到该对象,但str()则有所不同。str() 致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于eval()求值, 但很适合用于 print 语句输出。需要再次提醒一下的是, 并不是所有repr()返回的字符串都能够用eval()内建函数得到原来的对象:

1 >>> eval(`type(type))`)
2 File "<stdin>", line 1
3 eval(`type(type))`)
4 ^
5 SyntaxError: invalid syntax

也就是说 repr() 输出对 Python 比较友好, 而str()的输出对人比较友好。虽然如此,很多情况下这三者的输出仍然都是完全一样的。
  核心笔记:为什么我们有了repr()还需要``?在Python 学习过程中,你偶尔会遇到某个运算符和某个函数是做同样一件事情。之所以如此是因为某些场合函数会比运算符更适合使用。举个例子, 当处理类似函数这样的可执行对象或根据不同的数据项调用不同的函数处理时,函数就比运算符用起来方便。另一个例子就是双星号(**)乘方运算和pow()内建函数,x ** y 和 pow(x,y) 执行的都是x 的y 次方。译者注:事实上Python 社区目前已经不鼓励继续使用``运算符。

时间: 2024-08-29 07:32:44

标准类型内建函数 str()和 repr() (及 `` 运算符) 简单介绍的相关文章

Python几个标准类型内建函数

Python提供了一些内建函数用于基本对象类型:cmp(),repr(),str(),type()和等同于repr()的(' ')操作符 (1)type() type的用法如下: type(object) 接受一个对象作为参数,并返回它的类型.他的返回值是一个类型对象. >>>type('r') <type 'str'> >>>type(3) <type 'int'> >>>type(type(5)) <type 'typ

标准类型内建函数 cmp()介绍

内建函数cmp()用于比较两个对象obj1 和obj2, 如果obj1 小于obj2, 则返回一个负整数,如果obj1 大于obj2 则返回一个正整数, 如果obj1 等于obj2, 则返回0.它的行为非常类似于C 语言的strcmp()函数.比较是在对象之间进行的,不管是标准类型对象还是用户自定义对象.如果是用户自定义对象, cmp()会调用该类的特殊方法__cmp__().在第13 章会详细介绍类的这些特殊方法.下面是几个使用cmp()内建函数的对数值和字符串对象进行比较的例子. >>&g

标准类型内建函数 type()介绍

我们现在来正式介绍一下 type().在Python2.2 以前, type() 是内建函数.不过从那时起,它变成了一个“工厂函数”.在本章的后面部分我们会讨论工厂函数, 现在你仍然可以将type()仅仅当成一个内建函数来看. type() 的用法如下: type(object) type() 接受一个对象做为参数,并返回它的类型.它的返回值是一个类型对象. >>> type(4) # int type <type 'int'> >>> >>&g

Python内置函数str()和repr()

内建函数str()和repr() (representation.表达,表示)或反引號操作符(``)能够方便地以字符串的方式获取对象的内容.类型.数值属性等信息. str()函数得到的字符串可读性好(故被print调用) repr()函数得到的字符串通常能够用来又一次获得该对象,通常情况下 obj==eval(repr(obj)) 这个等式是成立的. 这两个函数接受一个对象作为其參数,返回适当的字符串. 其实repr()和``做一样的事情,返回一个对象的"官方"字符串表示.其结果绝大多

day2_chapter4_标准类型和内建函数

1. 标准类型 Integer,Boolean, Long integer, Floating point real number, Complex number, String, List, Tuple, Dictionary 其他内建类型: 类型, Null对象(None) 文件,集合,函数, 模块, 类 2. type(2) -> <type, 'int'> type(type(2)) -> <type, 'type'> boolean isinstance() 

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

在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即str()或者 repr() . >>> a = 10 >>> type(str(a)) <class 'str'> >>> type(repr(a)) <class 'str'> 但是这二者之间有什么区别呢?因为提供两个功能完全相同的内建函数是没有意义的.先看一个例子. >>> print(str('123')) 123 >

Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用

Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str()或者 repr() . >>> a = 10 >>> type(str(a)) <class 'str'> >>> type(repr(a)) <class 'str'> 但是这二者之间有什么区别呢?因

标准类型String(学习中)

1.读取string对象 #include<iostream> #include<cstring> using namespace std; int main() { string s; cin>>s; cout<<s; return 0; } 这段代码首先定义了一个名为s 的空string,然后将标准输入的内容读取到s中.在执行读取操作时,string对象自动忽略开头的空白(即空格符.换行符.制表符等)并从第一个真正的字符开始读起,直到遇到下一次空白为止.

python str 与repr区别

Python打印值的时候会保持该值在Python代码中的状态,不是用户所希望看到的状态.而使用print打印值则不一样,print打印出来的值是用户所希望看到的状态. 例如: >>> "Hello, world!" 'Hello, world!' # Python打印出来的值是给python理解的,这里python理解为字符串,所以带着引号 >>> 1000L # python理解为Long型的数字,所以它打印出来的时候也带着后缀L 1000L &g