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中函数的参数
Apr 27 Python
Pycharm技巧之代码跳转该如何回退
Jul 16 Python
Python爬虫之正则表达式基本用法实例分析
Aug 08 Python
解决pycharm安装后代码区不能编辑的问题
Oct 28 Python
python3射线法判断点是否在多边形内
Jun 28 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
Python list与NumPy array 区分详解
Nov 06 Python
Python原始套接字编程实例解析
Jan 29 Python
pandas的resample重采样的使用
Apr 24 Python
python某漫画app逆向
Mar 31 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 Python
python中__slots__节约内存的具体做法
Jul 04 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 已经成熟
2006/12/04 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
2016/12/15 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
ExtJS的拖拽效果示例
2013/12/09 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
Bootstrap3 Grid system原理及应用详解
2016/09/30 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
python中使用mysql数据库详细介绍
2015/03/27 Python
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
2018/04/18 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
python实现证件照换底功能
2019/08/20 Python
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
vue路由实现登录拦截
2021/03/24 Vue.js
20岁生日感言
2014/01/13 职场文书
CAD制图人员的自荐信
2014/02/07 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python
Mysql中常用的join连接方式
2022/05/11 MySQL