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 相关文章推荐
400多行Python代码实现了一个FTP服务器
May 10 Python
Python列表(list)、字典(dict)、字符串(string)基本操作小结
Nov 28 Python
Python异常学习笔记
Feb 03 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
Dec 25 Python
Python实现删除列表中满足一定条件的元素示例
Jun 12 Python
使用python为mysql实现restful接口
Jan 05 Python
python 给DataFrame增加index行名和columns列名的实现方法
Jun 08 Python
python中ASCII码和字符的转换方法
Jul 09 Python
python实现两张图片的像素融合
Feb 23 Python
关于python中密码加盐的学习体会小结
Jul 15 Python
python 根据字典的键值进行排序的方法
Jul 24 Python
Python函数默认参数常见问题及解决方案
Mar 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
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
使用vue 国际化i18n 实现多实现语言切换功能
2018/10/11 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
vue中nextTick用法实例
2019/09/11 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
详解Django中的过滤器
2015/07/16 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
Python同步遍历多个列表的示例
2019/02/19 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
2020/02/10 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
Bally巴利中国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/10/09 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
JNI的定义
2012/11/25 面试题
当当网软件测试笔试题
2015/11/24 面试题
电钳专业个人求职信
2014/01/04 职场文书
物业工作计划书
2014/01/10 职场文书
校园之星获奖感言
2014/01/29 职场文书
读书之星事迹材料
2014/05/12 职场文书
优秀毕业生求职信
2014/06/05 职场文书
建筑工地标语
2014/06/18 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python