Python对象类型及其运算方法(详解)


Posted in Python onJuly 05, 2017

基本要点:

程序中储存的所有数据都是对象(可变对象:值可以修改 不可变对象:值不可修改)

每个对象都有一个身份、一个类型、一个值

例:

>>> a1 = 'abc'
 >>> type(a1)
 str

创建一个字符串对象,其身份是指向它在内存中所处的指针(在内存中的位置)

a1就是引用这个具体位置的名称

使用type()函数查看其类型

其值就是'abc'

自定义类型使用class

对象的类型用于描述对象的内部表示及其支持的方法和操作

创建特定类型的对象,也将该对象称为该类型的实例,实例被创建后,其身份和类型就不可改变

容器:某对象内包含对其它对象的引用

对象拥有特有的数据属性和方法,使用点运算符调用

数据:变量

方法:函数

1) 对象的身份和类型

两个对象比较:

1、值比较:对象中的数据是否相同;

2、身份比较:两个变量名引用的是否为同一对象;

3、类型比较:两个对象的类型是否相同;

注意:

内置函数id()可返回对象的身份即在内存中的位置

is比较两个对象的身份

type()返回对象的类型

例:

>>> num1 = 5
>>> num2 = 6
>>> num1 == num2 值比较
False  
>>> num1 is num2 身份比较
True
>>> type(num1) is type(num2) 类型比较
True

2)核心数据类型

数字:int, long, float, complex(复数), bool

字符:str, unicode

列表:list

字典:dict

元组: tuple

文件:file

其它类型:集合(set), frozenset, 类类型, None

3)类型转换

str(), repr()或format():将非字符型数据转换为字符;
int(): 转为整数
float(): 转为浮点数
list(s): 将字串s转为列表
tuple(s):将字串s转为元组
set(s): 将字串s转为集合
frozenset(s):将字串s转换为不可变集合;
dict(d): 创建字典;其d必须是(key, value)的元组序列

例:

>>> str1 = 'hello,fanison'
>>> list(str1)
['h', 'e', 'l', 'l', 'o', ',', 'f', 'a', 'n', 'i', 's', 'o', 'n']
>>> tuple(str1)
('h', 'e', 'l', 'l', 'o', ',', 'f', 'a', 'n', 'i', 's', 'o', 'n')
>>> set(str1)
set(['a', 'e', 'f', 'i', 'h', 'l', 'o', ',', 's', 'n']) 特别注意!!!去重
>>> l1=[('a',1),('b',2),('c',3)]
>>> list(l1)
{'a': 1, 'c': 3, 'b': 2}

补充例题:

>>> a = 'ABC'
>>> b = a
>>> a = 'XYZ'
>>> print a b
'XYZ' 'ABC'

图解过程

Python对象类型及其运算方法(详解)

4)数字类型操作

5种数字类型:整型、长整型、浮点型、复数、布尔型

所有数字类型均不可变

>>> a = 10# 整型
>>> b = 1.5 # 浮点型
>>> c = True # 布尔型
>>> d = 5+2j # 复数

例:

>>> 1 + 2
3
>>> 1.0 + 2
3.0
>>> 11 % 4
3
>>> 11.0 / 4 
2.75

整数和浮点数混合运算的结果是浮点数

Python对象类型及其运算方法(详解)

5)布尔类型

bool(布尔型)之所以属于数字类型,是因为bool是int的子类。

>>> int(True)
1
>>> int(False)
0
>>> bool(1)
True
>>> bool(-1)
True
>>> bool(0)
False

结论:

bool 转 int时, Ture-->1, False-->0
int 转 bool时, 非0-->True, 0-->False

与运算:只有两个布尔值都为 True 时,计算结果才为 True。

>>> True and True 
 True
 >>> True and False
 False
 >>> False and True
 False
 >>> False and False
 False

或运算:只要有一个布尔值为 True,计算结果就是 True。

>>> True or True
 True
 >>> True or False
 True
 >>> False or True
 True
 >>> False or False
 False

非运算:把True变为False,或者把False变为True:

>>> not True
 False
 >>> not False
 True

注意:1、任何非0数字和非空对象都为真;

2、数字0、空对象和特殊对象None均为假;

and 和 or 运算的一条重要法则:短路计算。

1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

例:

>>> a = 'python'
>>> print 'hello,', a or 'fanison'
hello,python
>>> b = ''
>>> print 'hello,', b or 'fanison'
hello,fanison

以上这篇Python对象类型及其运算方法(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python append、extend与insert的区别
Oct 13 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
Apr 18 Python
Python入门之三角函数atan2()函数详解
Nov 08 Python
python初学之用户登录的实现过程(实例讲解)
Dec 23 Python
python 对key为时间的dict排序方法
Oct 17 Python
ML神器:sklearn的快速使用及入门
Jul 11 Python
如何利用Python模拟GitHub登录详解
Jul 15 Python
python监控nginx端口和进程状态
Sep 06 Python
numpy.ndarray 实现对特定行或列取值
Dec 05 Python
使用python自动追踪你的快递(物流推送邮箱)
Mar 17 Python
Django视图、传参和forms验证操作
Jul 15 Python
python实现简单遗传算法
Sep 18 Python
python数据预处理之将类别数据转换为数值的方法
Jul 05 #Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
Jul 04 #Python
在django中使用自定义标签实现分页功能
Jul 04 #Python
详解django中自定义标签和过滤器
Jul 03 #Python
pygame实现弹力球及其变速效果
Jul 03 #Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 #Python
python中安装Scrapy模块依赖包汇总
Jul 02 #Python
You might like
php根据一个给定范围和步进生成数组的方法
2015/06/19 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
2017/01/11 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
2019/11/09 PHP
js注意img图片的onerror事件的分析
2011/01/01 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
JavaScript中的fontsize()方法使用详解
2015/06/08 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
js中document.referrer实现移动端返回上一页
2017/02/22 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
bootstrap是什么_动力节点Java学院整理
2017/07/14 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
2018/08/20 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
Django celery异步任务实现代码示例
2020/11/26 Python
世界上最大的巴士旅游观光公司:Big Bus Tours
2016/10/20 全球购物
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
Linux操作面试题
2012/05/16 面试题
授权委托书范本
2014/04/03 职场文书
家长对孩子的评语
2014/04/18 职场文书
幼儿园社区活动总结
2014/07/07 职场文书
中国在我心中演讲稿
2014/09/13 职场文书
大学生职业生涯规划大赛作品(精品)
2014/09/17 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书