Python入门篇之对象类型


Posted in Python onOctober 17, 2014

Python使用对象模型来存储数据。构造任何类型的值都是一个对象

所有的Python对象都拥有三个特性:身份、类型、值

身份:

每一个对象都有一个唯一的身份来标志自己,任何对象的身份可以使用内建函数id()来得到。这个值可以被认为是该对象的内存地址

类型:

对象的类型决定了该对象可以保存什么类型的值,可以进行怎样的操作,以及遵循什么样的规则,可以使用内建函数type()查看Python对象的类型:

>>> type([1,2])

<type 'list'>

>>> type(24)

<type 'int'>

>>> type({1,2,3})

<type 'set'>

>>> type('a string')

<type 'str'>

type()返回的是对象而不是简单的字符串。

值:对象表示的数据项

以上的三个特性在对象创建的时候就被赋值,除此之外,其他两个特性都是只读的

标准类型/基础数据类型:

数字、整型、布尔型、长整形、浮点型、复数型、字符串、列表、元组、字典

其他内建类型:

类型、Null对象(None)、文件、集合/固定集合、函数/方法、模块、类

None,Python的Null对象

Python有一个特殊的类型,称为Null对象或者NoneType,只有一个值:None,它不支持任何运算也没有任何内建的方法,类似于C语言的void,None类型的值

和C中的Null值非常相似

None没有什么有用的属性,它的布尔值总是False

布尔值

所有标准对象均可以用于布尔测试,同类型的对象之间可以比较大小。每一个对象天生具有布尔True或false值

空对象、值为0的任意数字或Null对象None的布尔值都是False

下列对象的布尔值都是False:

None
False(布尔类型)
所有的值为0的数
0(整型)
(浮点型)
0L(长整型)
0.0+0.0j(复数)
“”(空字符串)
[](空列表)
()(空元组)
{}(空字典)
 值不是上面列出来的任何值的对象的布尔值都是True

标准类型运算符:

比较运算符用来判断同类型对象是否相等,所有的内建类型均支持比较运算,比较运算返回布尔值True或False

>>> 2==2

True

>>> 2.34<=3.44

True

>>> 'abc'=='xyz'

False

>>> 'xyz'>'abc'

True

>>> 'xyz'<'abc'

False

>>> [3,'abc']==['abc',3]

False

>>> [3,'abc']==[3,'abc']

True

多个比较操作可以在同一行上进行,求值顺序为从左到右.例如:

>>> 3<4<5 #等价于 (3<4)and(4<5)

True

>>> 4>3==3 #等价于(4>3)and(3==3)

True

>>> 4<3<5!=2<7

False

标准类型值比较运算符:

Python入门篇之对象类型

对象身份比较

每个对象都天生具有一个计数器,记录它自己的引用次数。这个数目表示有多少个变量指向该对象

Python提供了is和is not运算符来测试两个变量是否指向同一个对象

a is b  等价于  id(a)==id(b)

>>> foo2=foo1

>>> foo1 is foo2

True

>>> foo1 is not foo2

False

>>> id(foo1)==id(foo2)

True

>>>

布尔类型

布尔逻辑运算符and,or,not都是Python关键字,这些运算符的优先级按从高到低的顺序如下:

标准类型布尔运算符:

Python入门篇之对象类型

>>> x,y=3.1415926,-1024

>>> x<5.0

True

>>> not(x<5.0)

False

>>> (x<5.0) or (y>2.71828)

True

>>> (x<5.0) and (y>2.71828)

False

>>> not(x is y)

True

标准类型内建函数

Python提供了一些内建函数用于这些基本对象类型:

cmp(), repr(), str(), type()和等同于repr()函数的单反引号('')运算符

type()接受一个对象作为参数,并返回它的类型。它的返回值是一个类型对象。

>>> type(4)

<type 'int'>

>>> type('hello!')

<type 'str'>

>>> type(type(4))

<type 'type'>

cmp()用于比较两个对象obj1和obj2,如果obj1<obj2返回-1,如果obj1>obj2返回1,如果obj1==obj2返回0,行为类似于C中的strcmp()函数,比较是在对象之间进行的

>>> a,b=-4,12

>>> cmp(a,b)

-1

>>> cmp(b,a)

1

>>> b=-4

>>> cmp(a,b)

0

>>> a,b='abc','xyz'

>>> cmp(a,b)

-1

>>> cmp(b,a)

1

>>> b='abc'

>>> cmp(a,b)

0

str()和repr()(及''运算符)

内建函数str()和repr()或反引号运算符('')可以方便的以字符串的方式获得对象的内容、类型、数值属性等信息。

str()函数得到的字符串可读性好,而repr()函数得到的字符串通常可以用来重新获得该对象

>>> 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()内建函数)重新得到该对象,但是str()函数则有所不同,它可以生成一个对象的可读性好的字符串表示,返回结果无法用于eval()求值,但是很适合用于print语句输出。

Python入门篇之对象类型

标准类型运算符和内建函数

Python 相关文章推荐
python多线程编程方式分析示例详解
Dec 06 Python
Python3搜索及替换文件中文本的方法
May 22 Python
python开发之str.format()用法实例分析
Feb 22 Python
PyCharm使用教程之搭建Python开发环境
Jun 07 Python
Python with用法:自动关闭文件进程
Jul 10 Python
pip安装python库的方法总结
Aug 02 Python
Django实现文件上传下载功能
Oct 06 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
Softmax函数原理及Python实现过程解析
May 22 Python
java字符串格式化输出实例讲解
Jan 06 Python
python 窃取摄像头照片的实现示例
Jan 08 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
Jun 07 Python
Python入门篇之编程习惯与特点
Oct 17 #Python
python中正则表达式的使用详解
Oct 17 #Python
基于python编写的微博应用
Oct 17 #Python
python连接oracle数据库实例
Oct 17 #Python
Python 检查数组元素是否存在类似PHP isset()方法
Oct 14 #Python
跟老齐学Python之Import 模块
Oct 13 #Python
跟老齐学Python之类的细节
Oct 13 #Python
You might like
php实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
PHP实现股票趋势图和柱形图
2015/02/07 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
javascript里的条件判断
2007/02/27 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
JS中跳出循环的示例代码
2017/09/14 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
vue监听input标签的value值方法
2018/08/27 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
2018/12/03 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
python用match()函数爬数据方法详解
2019/07/23 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
彪马美国官网:PUMA美国
2017/03/09 全球购物
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
英国羊皮鞋类领先品牌:Just Sheepskin
2019/12/12 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
中学生操行评语大全
2014/04/24 职场文书
平安工地汇报材料
2014/08/19 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
2015年化验员工作总结
2015/04/10 职场文书
庆祝教师节主持词
2015/07/06 职场文书