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抓取京东图书评论数据
Aug 31 Python
Python如何实现守护进程的方法示例
Feb 08 Python
Python中几种导入模块的方式总结
Apr 27 Python
在scrapy中使用phantomJS实现异步爬取的方法
Dec 17 Python
python 中的列表生成式、生成器表达式、模块导入
Jun 19 Python
Python从文件中读取指定的行以及在文件指定位置写入
Sep 06 Python
python安装scipy的步骤解析
Sep 28 Python
python中tab键是什么意思
Jun 18 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
pycharm Tab键设置成4个空格的操作
Feb 26 Python
Python实现单例模式的5种方法
Jun 15 Python
Python使用华为API为图像设置多个锚点标签
Apr 12 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
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
php上传图片并给图片打上透明水印的代码
2010/06/07 Javascript
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
js 毫秒转天时分秒的实例
2017/11/17 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
2019/02/22 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
用python实现对比两张图片的不同
2018/02/05 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
Python判断telnet通不通的实例
2019/01/26 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
python Paramiko使用示例
2020/09/21 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
个人实用的自我评价范文
2013/11/23 职场文书
三年大学自我鉴定
2014/01/16 职场文书
群众路线个人对照检查材料
2014/09/23 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
房产销售员2015年终工作总结
2015/10/22 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang