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生成n个元素的全组合方法
Nov 13 Python
Python 互换字典的键值对实例
Feb 12 Python
详解用Python实现自动化监控远程服务器
May 18 Python
python实现感知机线性分类模型示例代码
Jun 02 Python
Python实现计算对象的内存大小示例
Jul 10 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
Feb 17 Python
Python调用.net动态库实现过程解析
Jun 05 Python
django美化后台django-suit的安装配置操作
Jul 12 Python
Selenium python时间控件输入问题解决方案
Jul 22 Python
pandas 实现将NaN转换为None
May 14 Python
Python手拉手教你爬取贝壳房源数据的实战教程
May 21 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
Apr 09 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实现的四则运算表达式计算实现代码
2011/08/02 PHP
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
JavaScript 学习笔记(十六) js事件
2010/02/01 Javascript
Dom与浏览器兼容性说明
2010/10/25 Javascript
jquery 学习之一 对象访问
2010/11/23 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
分享几种比较简单实用的JavaScript tabel切换
2015/12/31 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
浅谈jquery设置和获得checkbox选中的问题
2016/08/19 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
基于JavaScript实现复选框的全选和取消全选
2017/02/09 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
vuejs如何配置less
2017/04/25 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
2019/02/08 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
Python map和reduce函数用法示例
2015/02/26 Python
Python urls.py的三种配置写法实例详解
2017/04/28 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
Python学生成绩管理系统简洁版
2020/04/05 Python
Django框架教程之正则表达式URL误区详解
2018/01/28 Python
Python 调用 zabbix api的方法示例
2019/01/06 Python
Flask框架学习笔记之模板操作实例详解
2019/08/15 Python
python用tkinter实现一个简易能进行随机点名的界面
2020/09/27 Python
详解python polyscope库的安装和例程
2020/11/13 Python
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
教师评优的个人自我评价分享
2013/09/19 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
终止劳动合同协议书
2014/10/05 职场文书
承诺书范本大全
2015/05/04 职场文书
2015年纪委工作总结
2015/05/13 职场文书
Oracle更换为MySQL遇到的问题及解决
2021/05/21 Oracle