Python随手笔记之标准类型内建函数

yipeiwu_com6年前Python基础

Python提供了一些内建函数用于基本对象类型:cmp(),repr(),str(),type()和等同于repr()的(' ')操作符

(1)type()

   type的用法如下:

          type(object)

   接受一个对象作为参数,并返回它的类型。他的返回值是一个类型对象。

>>>type('r')
<type 'str'>
>>>type(3)
<type 'int'>
>>>type(type(5))
<type 'type'>

(2)cmp()

内建函数cmp()用于比较两个对象obj1和obj2。如果obj1大于obj2,则返回一个正整数,如果小于,则返回一个负整数,等于的话返回0.

>>>a,b=4,12
>>>cmp(a,b)
-1
>>>b=4
>>>cmp(a,b)
0
>>>a,b='xyz','abc'
>>>cmp(a,b)
23

 (3)str()、repr()

     可以方便的以字符串的方式获取对象的内容、类型、数值属性等信息。str()函数得到的字符串可读性好,而repr()得到的字符串通常可以用来重新获得该对象。

>>>str(1)
'1'
>>>str(2e4)
'20000.0'
>>>repr([0,1,2,3])
'[0,1,2,3]'

下面抽点时间单独给大家介绍python中的内建函数

在python中,输入如下命令即可查看python的内建函数dir:

>>> dir(__builtins__)

1、str()和repr()以及''运算符

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

>>> str(4.53-2j)
'(4.53-2j)'
>>>
>>> str(1)
'1'
>>>
>>> str(2e10)
'20000000000.0'
>>>
>>> str([0, 5, 9, 9])
'[0, 5, 9, 9]'
>>>
>>> repr([0, 5, 9, 9])
'[0, 5, 9, 9]'
>>>
>>> `[0, 5, 9, 9]`
'[0, 5, 9, 9]'

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

>>> eval_r(`type(type))`)
File "<stdin>", line 1
eval_r(`type(type))`)
^
SyntaxError: invalid syntax

    也就是说 repr() 输出对 Python 比较友好, 而str()的输出对人比较友好。虽然如此,
很多情况下这三者的输出仍然都是完全一样的。

核心笔记:为什么我们有了repr()还需要``?

    在Python 学习过程中,你偶尔会遇到某个运算符和某个函数是做同样一件事情。之所以如此是因为某些场合函数会比运算符更适合使用。举个例子, 当处理类似函数这样的可执行对象或根据不同的数据项调用不同的函数处理时,函数就比运算符用起来方便。另一个例子就是双星号(**)乘方运算和pow()内建函数,x ** y 和 pow(x,y) 执行的都是x 的y 次方。

译者注:事实上Python 社区目前已经不鼓励继续使用``运算符。

相关文章

利用Python的Twisted框架实现webshell密码扫描器的教程

好久以来都一直想学习windows中得iocp技术,即异步通信,但是经过长时间研究别人的c++版本,发现过于深奥了,有点吃力,不过幸好python中的twisted技术的存在方便了我。...

Python 遍历列表里面序号和值的方法(三种)

Python 遍历列表里面序号和值的方法(三种)

三种遍历列表里面序号和值的方法: 最近学习python这门语言,感觉到其对自己的工作效率有很大的提升,特在情人节这一天写下了这篇博客,下面废话不多说,直接贴代码 #!/usr/bin...

python类参数self使用示例

复制代码 代码如下:#coding:utf-8"""__new__和__init__到底是怎么一回事,看下面的代码如果类没有定义__new__方法,就从父类继承这个__new__方法。_...

Python基于Floyd算法求解最短路径距离问题实例详解

本文实例讲述了Python基于Floyd算法求解最短路径距离问题。分享给大家供大家参考,具体如下: Floyd算法和Dijkstra算法,相信大家都不陌生,在最短路径距离的求解中应该算得...

Linux中安装Python的交互式解释器IPython的教程

IPython是Python的交互式Shell,提供了代码自动补完,自动缩进,高亮显示,执行Shell命令等非常有用的特性。特别是它的代码补完功能,例如:在输入zlib.之后按下Tab键...