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连接mysql数据库示例(做增删改操作)
Dec 31 Python
十个Python程序员易犯的错误
Dec 15 Python
Python正则表达式非贪婪、多行匹配功能示例
Aug 08 Python
Python中format()格式输出全解
Apr 12 Python
numpy数组广播的机制
Jul 12 Python
利用python实现汉字转拼音的2种方法
Aug 12 Python
pymysql 插入数据 转义处理方式
Mar 02 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
Mar 30 Python
Python 执行矩阵与线性代数运算
Aug 01 Python
Django中日期时间型字段进行年月日时分秒分组统计
Nov 27 Python
python 列表推导和生成器表达式的使用
Feb 01 Python
python 破解加密zip文件的密码
Apr 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
ThinkPHP php 框架学习笔记
2009/10/30 PHP
PHP动态创建Web站点的方法
2011/08/14 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
js压缩利器
2007/02/20 Javascript
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
js用闭包遍历树状数组的方法
2014/03/19 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
2019/04/23 Javascript
vue-router的两种模式的区别
2019/05/30 Javascript
Vue实现boradcast和dispatch的示例
2020/11/13 Javascript
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
Python的Flask框架中web表单的教程
2015/04/20 Python
Python实现包含min函数的栈
2016/04/29 Python
django+js+ajax实现刷新页面的方法
2017/05/22 Python
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
2018/04/22 Python
django如何自己创建一个中间件
2019/07/24 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
pytorch torchvision.ImageFolder的用法介绍
2020/02/20 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
人力资源行政经理自我评价
2013/10/23 职场文书
企业军训感想
2014/02/07 职场文书
大学学习个人的自我评价
2014/02/18 职场文书
前台接待员岗位职责
2015/04/15 职场文书
2016优秀护士先进个人事迹材料
2016/02/25 职场文书