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下如何让web元素的生成更简单的分析
Jul 17 Python
python构造icmp echo请求和实现网络探测器功能代码分享
Jan 10 Python
Python中优化NumPy包使用性能的教程
Apr 23 Python
python logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
插入排序_Python与PHP的实现版(推荐)
May 11 Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
Python安装pycurl失败的解决方法
Oct 15 Python
Puppeteer使用示例详解
Jun 20 Python
Python configparser模块封装及构造配置文件
Aug 07 Python
Python模拟键盘输入自动登录TGP
Nov 27 Python
Pycharm制作搞怪弹窗的实现代码
Feb 19 Python
Python爬虫UA伪装爬取的实例讲解
Feb 19 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
AM/FM收音机的安装与调试
2021/03/02 无线电
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
jquery实现加载更多&quot;转圈圈&quot;效果(示例代码)
2020/11/09 jQuery
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
python入门之基础语法学习笔记
2020/02/08 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
Groupon荷兰官方网站:高达70%的折扣
2019/11/01 全球购物
EJB发布WEB服务一般步骤
2012/10/31 面试题
农救科工作职责
2013/11/27 职场文书
网络编辑岗位职责范本
2014/02/10 职场文书
保险经纪人求职信
2014/03/11 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
同意报考公务员证明
2015/06/17 职场文书
教师学习中国梦心得体会
2016/01/05 职场文书
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
2021/08/07 HTML / CSS
win10系统计算机图标怎么调出来?win10调出计算机图标的方法
2022/08/14 数码科技