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


Posted in Python onDecember 02, 2015

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 相关文章推荐
Python安装第三方库的3种方法
Jun 21 Python
python 排序算法总结及实例详解
Sep 28 Python
python算法演练_One Rule 算法(详解)
May 17 Python
浅谈python中对于json写入txt文件的编码问题
Jun 07 Python
django从请求到响应的过程深入讲解
Aug 01 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
python按修改时间顺序排列文件的实例代码
Jul 25 Python
如何通过python实现全排列
Feb 11 Python
python 中的paramiko模块简介及安装过程
Feb 29 Python
python实现图像全景拼接
Mar 27 Python
Python Web项目Cherrypy使用方法镜像
Nov 05 Python
python tkinter Entry控件的焦点移动操作
May 22 Python
python抓取网页中图片并保存到本地
Dec 01 #Python
利用Python学习RabbitMQ消息队列
Nov 30 #Python
MySQL中表的复制以及大型数据表的备份教程
Nov 25 #Python
python基础知识小结之集合
Nov 25 #Python
python 多线程实现检测服务器在线情况
Nov 25 #Python
Python中time模块与datetime模块在使用中的不同之处
Nov 24 #Python
简单解决Python文件中文编码问题
Nov 22 #Python
You might like
php的header和asp中的redirect比较
2006/10/09 PHP
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
php中CI操作多个数据库的代码
2012/07/05 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
JavaScript基本对象
2007/01/11 Javascript
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
2017/03/02 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
[46:23]OG vs EG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python中字典的setdefault()方法教程
2017/02/07 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
Python进度条的制作代码实例
2019/08/31 Python
python分布式计算dispy的使用详解
2019/12/22 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
2019/12/25 Python
Python Tensor FLow简单使用方法实例详解
2020/01/14 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
如何一键升级Python所有包
2020/11/05 Python
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
html5.2 dialog简介详解
2018/02/27 HTML / CSS
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
经典优秀个人求职信分享
2013/12/12 职场文书
安全教育感言
2014/03/04 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
python+opencv实现视频抽帧示例代码
2021/06/11 Python