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 中urls.py:URL dispatcher(路由配置文件)详解
Mar 24 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
Jul 13 Python
Python第三方Window模块文件的几种安装方法
Nov 22 Python
Python中shapefile转换geojson的示例
Jan 03 Python
Django如何将URL映射到视图
Jul 29 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
Aug 22 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
Python实现多线程/多进程的TCP服务器
Sep 03 Python
Python读取excel文件中带公式的值的实现
Apr 17 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
Apr 20 Python
python 8种必备的gui库
Aug 27 Python
python中封包建立过程实例
Feb 18 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 xml留言板 xml存储数据的简单例子
2009/08/24 PHP
php将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
php自动识别文件编码并转换为UTF-8的方法
2014/06/12 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
2016/07/07 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
做web开发 先学JavaScript
2014/12/12 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
webpack4 css打包压缩问题的解决
2018/05/18 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
node.js命令行教程图文详解
2019/05/27 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
微信小程序后端(java)开发流程的详细步骤
2019/11/13 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
python2和python3实现在图片上加汉字的方法
2019/08/22 Python
python deque模块简单使用代码实例
2020/03/12 Python
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
幼儿园大班教学反思
2014/02/10 职场文书
检讨书怎么写
2015/05/07 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书
配置nginx负载均衡
2022/05/06 Servers