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开发编码规范
Sep 08 Python
Python多线程编程(七):使用Condition实现复杂同步
Apr 05 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
May 21 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
Jun 14 Python
Python实现识别手写数字大纲
Jan 29 Python
python模仿网页版微信发送消息功能
Feb 24 Python
matplotlib 输出保存指定尺寸的图片方法
May 24 Python
使用python爬取B站千万级数据
Jun 08 Python
python tkinter实现屏保程序
Jul 30 Python
Python爬虫运用正则表达式的方法和优缺点
Aug 25 Python
Python利用FFT进行简单滤波的实现
Feb 26 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
Nov 26 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
php从数组中随机抽取一些元素的代码
2012/11/05 PHP
apache php模块整合操作指南
2012/11/16 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
PHP中使用BigMap实例
2015/03/30 PHP
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
javascript中Object使用详解
2015/01/26 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
Vue Ajax跨域请求实例详解
2017/06/20 Javascript
EasyUI的DataGrid每行数据添加操作按钮的实现代码
2017/08/22 Javascript
老生常谈JavaScript面向对象基础与this指向问题
2017/10/16 Javascript
分析JavaScript数组操作难点
2017/12/18 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
关于微信小程序登录的那些事
2019/01/08 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
javascript实现留言板功能
2020/02/08 Javascript
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
Vue ​v-model相关知识总结
2021/01/28 Vue.js
Python、Javascript中的闭包比较
2015/02/04 Python
详解python中requirements.txt的一切
2017/03/03 Python
Python drop方法删除列之inplace参数实例
2020/06/27 Python
python右对齐的实例方法
2020/07/05 Python
实例代码讲解Python 线程池
2020/08/24 Python
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
标准化管理实施方案
2014/02/25 职场文书
餐饮采购员岗位职责
2014/03/15 职场文书
《北大荒的秋天》教学反思
2014/04/14 职场文书
环保建议书200字
2014/05/14 职场文书
交通文明倡议书
2014/05/16 职场文书