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程序中解析并修改XML内容的方法
Nov 16 Python
python opencv 直方图反向投影的方法
Feb 24 Python
PyQt5每天必学之进度条效果
Apr 19 Python
查看django执行的sql语句及消耗时间的两种方法
May 29 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
Jul 02 Python
深入理解Django-Signals信号量
Feb 19 Python
Python读取stdin方法实例
May 24 Python
Django项目之Elasticsearch搜索引擎的实例
Aug 21 Python
python如何对链表操作
Oct 10 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
Oct 15 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 Python
python基础之错误和异常处理
Oct 24 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启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
2014/10/20 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
PHP强制转化的形式整理
2020/05/22 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
2016/07/18 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
JavaScript实现的CRC32函数示例
2016/11/23 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
详解如何webpack使用DllPlugin
2018/09/30 Javascript
详解从react转职到vue开发的项目准备
2019/01/14 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
Python实现合并两个有序链表的方法示例
2019/01/31 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
Python控制台实现交互式环境执行
2020/06/09 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
大学毕业通用个人的求职信
2013/12/08 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
创业计划书的写作技巧及要点
2014/01/31 职场文书
大学社团计划书
2014/05/01 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
先进员工事迹材料
2014/12/20 职场文书
开学典礼校长致辞
2015/07/29 职场文书
情人节单身感言
2015/08/03 职场文书
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android
Python如何用re模块实现简易tokenizer
2022/05/02 Python