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简单判断序列是否为空的方法
Jun 30 Python
Python三级菜单的实例
Sep 13 Python
Python实现随机选择元素功能
Sep 14 Python
Tensorflow使用tfrecord输入数据格式
Jun 19 Python
在Pycharm中执行scrapy命令的方法
Jan 16 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
手写一个python迭代器过程详解
Aug 27 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
python 爬虫 实现增量去重和定时爬取实例
Feb 28 Python
Python3开发环境搭建详细教程
Jun 18 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
Aug 07 Python
Opencv+Python识别PCB板图片的步骤
Jan 07 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 Undefined index报错的修复方法
2011/07/17 PHP
PHP递归返回值时出现的问题解决办法
2013/02/19 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
js实现可拖动DIV的方法
2013/12/17 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
微信公众号 客服接口的开发实例详解
2016/09/28 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
解决vue点击控制单个样式的问题
2018/09/05 Javascript
react-router 路由切换动画的实现示例
2018/12/03 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
python3图片转换二进制存入mysql
2013/12/06 Python
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
浅谈Python中数据解析
2015/05/05 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
微信 用脚本查看是否被微信好友删除
2016/10/28 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
python计算列表内各元素的个数实例
2018/06/29 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
了解不常见但是实用的Python技巧
2019/05/23 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
个人合作协议书范本
2014/04/18 职场文书
房地产推广策划方案
2014/05/19 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
优秀教师工作总结2015
2015/07/22 职场文书