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 23 Python
python字符串过滤性能比较5种方法
Jun 22 Python
详解Python在七牛云平台的应用(一)
Dec 05 Python
pandas数据分组和聚合操作方法
Apr 11 Python
Tensorflow卷积神经网络实例进阶
May 24 Python
Python3自动签到 定时任务 判断节假日的实例
Nov 13 Python
python 删除字符串中连续多个空格并保留一个的方法
Dec 22 Python
python将excel转换为csv的代码方法总结
Jul 03 Python
基于Python实现视频的人脸融合功能
Jun 12 Python
keras的load_model实现加载含有参数的自定义模型
Jun 22 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
Jul 02 Python
Python是怎样处理json模块的
Jul 16 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.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
php适配器模式介绍
2012/08/14 PHP
php 强制下载文件实现代码
2013/10/28 PHP
js用图作提交按钮或超连接
2008/03/26 Javascript
Javascript 类与静态类的实现
2010/04/01 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
详解JavaScript UTC时间转换方法
2016/01/07 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
Vue+SpringBoot开发V部落博客管理平台
2017/12/27 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
微信小程序wx:for和wx:for-item的用法详解
2018/04/01 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
python email smtplib模块发送邮件代码实例
2018/04/26 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
拖鞋店创业计划书
2014/01/15 职场文书
期末自我鉴定
2014/02/02 职场文书
单位消防安全责任书
2014/07/23 职场文书
好人好事演讲稿
2014/09/01 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
辞职申请书范本
2019/05/20 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js