Python对象类型及其运算
Python对象类型及其运算
基本要点:
程序中储存的所有数据都是对象(可变对象:值可以修改 不可变对象:值不可修改)
每个对象都有一个身份、一个类型、一个值
例:
>>> 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'
图解过程

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
整数和浮点数混合运算的结果是浮点数

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对象类型及其运算
Python对象类型及其运算 基本要点: 程序中储存的所有数据都是对象(可变对象:值可以修改 不可变对象:值不可修改) 每个对象都有一个身份.一个类型.一个值 例: >>> a1 = ...
- 四:python 对象类型详解一:数字(下)
一:位操作 除了一般的数学运算,python也支持c语言中的大多数数学表达式.这包括那些把整数当作二进制位串对待的操作.例如,还可以实现位移及布尔操作: >>> x = 1 > ...
- 《Python学习手册 第五版》 -第4章 介绍Python对象类型
本章的内容主要是介绍了Python的核心对象类型,后续的5.6.7.8.9章针对这些核心类型分别展开详细的说明 本章我认为重要的有几点 1.作者有谈到Python的知识结构,这个我感觉是一个大框架,可 ...
- python对象类型
一.内置对象 对象类型 分类 是否可变 例子 数字 数值 否 123,3.12 字符串 序列 否 'test',"test's" 列表 序列 是 [1,2,3,[1,2,'test ...
- 十:python 对象类型详解六:文件
一:文件 1.简介:内置open 函数会创建一个python 文件对象,可以作为计算机上的一个文件链接.在调用open 之后,可以通过调用返回文件对象的方法来读写相关外部文件.文件对象只是常见文件处理 ...
- 七:python 对象类型详解三:列表
一:列表简介: 1,列表可以包含任何种类的对象:数字.字符串甚至集合对象类型.列表都是可变对象,它们都支持在原处修改的操作,可以通过指定的偏移量和分片.列表方法调用.删除语句等方法来实现.关键的作用有 ...
- 六:python 对象类型详解二:字符串(下)
一:字符串方法: 方法就是与特定对象相关联在一起的函数.从技术的角度来讲,它们是附属于对象的属性,而这些属性不过是些可调用的函数罢了.Python 首先读取对象方法,然后调用它,传递参数.如果一个方法 ...
- 二:python 对象类型概述
1,为什么使用内置类型: a)内置对象使程序更容易编写 b)内置对象是扩展的组件 c)内置对象往往比定制的数据结构更加高效 d)内置对象是语言的标准的一部分 2,python 的主要内置对象 对象类 ...
- 八:python 对象类型详解四:字典
一:字典通识: 1,字典通过键而不是偏移量来读取: 2,字典是任意对象的无序集合: 3,字典可变长.异构.任意嵌套: 4,字典属于可变映射类型: 5,对象引用表(散列表): 二:实际应用中的字典: 1 ...
随机推荐
- Hive的分区操作~~~~~~
一.Hive分区(一).分区概念:为什么要创建分区:单个表数据量越来越大的时候,在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作.有时候只需要扫描表中关心的一部分数据, ...
- 如何使用华为软件开发云快速部署PHP网站
华为软件开发云这个工具,从去年推出我就一直在关注,毕竟是华为最新的一款软件开发工具,最近我一直在使用华为软件开发云进行开发项目管理,它有在线编译和构建.云端在线代码检查等功能,编译省去了很多物理机器的 ...
- 一个基于thinkphp的微信授权登陆功能
共享一份基于thinkphp开发的用户授权登陆的功能代码,本实例使用thinkphp的第三方微信公众平台PHP-SDK,地址https://github.com/dodgepudding/wechat ...
- 《安卓网络编程》之第八篇 安卓与服务器之间通讯JSON
JSON是什么? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition ...
- js实现超出一定字数隐藏并用省略号"..."代替,点击后又可进行展开和收起,
原理简单阐述:放两个一模一样的div,把你要展示的文字放进去.页面初始化的时候,第一个div展示,第二个 div隐藏,就是这么简单.(ps:可以直接复制代码到你自己项目中,查看效果) 样式部分(记得引 ...
- iOS11和机器学习CoreML库
随着iOS11的发布,苹果公司也正式加入了机器学习的战场.在新的iOS11中内置了CoreML,虽然还是Beta版本,但是功能已经非常强大了. 在这个CoreML库里面,已经集成了一些训练好的模型,可 ...
- 一天搞定CSS:表单(form)--20
1.表单标签 2.input标签属性与取值 代码演示 <!DOCTYPE html> <html> <head> <meta charset="UT ...
- 【小练习01】CSS--PS提示框制作
要求用css和HTML实现下图效果: 代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8& ...
- JavaSE教程-02Java基本语法-BUG:易错点
1.区别文档注释和多行注释 多行注释:多一个* 多行注释 格式: /* 注释文字 */ 文档注释 格式:/** 注释文字 */ 2.有关变量名.类名.方法名等注意点 由字母.数字.下划线.$组成,但不 ...
- git代码回滚
有时候我们用git提交代码后发生了错误,代码冲突了啊等等,我们需要将代码回到以前的某个版本 git代码回退有两种办法 一.git reset(推荐): 它是将最新的commit删除,用以前的某个版本的 ...