基本要点:

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

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

例:

>>> 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对象类型及其运算方法(详解)相关推荐

  1. python属性使用教程_Python对象的属性访问过程详解

    只想回答一个问题: 当编译器要读取obj.field时, 发生了什么? 看似简单的属性访问, 其过程还蛮曲折的. 总共有以下几个step: 1. 如果obj 本身(一个instance )有这个属性, ...

  2. python实现排序函数_Python排序函数的使用方法详解

    Python排序函数完美体现了Python语言的简洁性,对于List对象,我们可以直接调用sort()函数(这里称为"方法"更合适)来进行排序,而对于其他可迭代对象(如set,di ...

  3. python怎么取共轭_python print出共轭复数的方法详解

    python print出共轭复数的方法详解 发布时间:2020-09-21 01:42:19 来源:脚本之家 阅读:92 作者:爱喝马黛茶的安东尼 复数是由一个实数和一个虚数组合构成,表示为:x+y ...

  4. python 求和并排序_Python堆排序原理与实现方法详解

    本文实例讲述了Python堆排序原理与实现方法.分享给大家供大家参考,具体如下: 在这里要事先说明一下我也是新手,很多东西我了解不是很深入,写算法完全是锻炼自己逻辑能力同时顺带帮助读研的朋友么解决一些 ...

  5. python字符串居中对齐_Python center()字符串居中对齐方法详解

    center() 字符串方法与ljust()和rjust()的用法类似,唯一的不同在于,该方法的功能是让字符串居中,而不是左对齐或右对齐. center() 方法的基本格式如下: S.center(w ...

  6. python 读取图片转换为一维向量_对Python中一维向量和一维向量转置相乘的方法详解...

    对Python中一维向量和一维向量转置相乘的方法详解 在Python中有时会碰到需要一个一维列向量(n*1)与另一个一维列向量(n*1)的转置(1*n)相乘,得到一个n*n的矩阵的情况.但是在pyth ...

  7. pythonprint字节按照16进制输出_对python以16进制打印字节数组的方法详解

    对python以16进制打印字节数组的方法详解 一.问题描述 如果直接用print打印bytes的话,有时候会直接显示ascii对应的字符,看起来很蛋疼. 二.运行效果 上面一行是直接用print打印 ...

  8. python统计csv行数_对Python 多线程统计所有csv文件的行数方法详解

    如下所示: #统计某文件夹下的所有csv文件的行数(多线程) import threading import csv import os class MyThreadLine(threading.Th ...

  9. python深拷贝一个对象_Python对象的深拷贝和浅拷贝详解

    本文内容是在<Python核心编程2>上看到的,感觉很有用便写出来,给大家参考参考! 浅拷贝 首先我们使用两种方式来拷贝对象,一种是切片,另外一种是工厂方法.然后使用id函数来看看它们的标 ...

最新文章

  1. 怎么修改网页服务器数据库连接,如何修改网页服务器数据库连接
  2. SAP MM 物料主数据里的‘Packaging Material Type‘字段
  3. python怎么安装matplotlib-如何安装Python绘图库Matplotlib?
  4. category android:name=android.intent.category.DEFAULT / 惹的祸
  5. linux系统证书存储,Linux系统下如何配置Nginx的SSL安全证书
  6. 作者:赵衎衎,男,中国人民大学信息学院博士生,CCF学生会员。
  7. 菜鸟学习Spring——初识Spring
  8. IP地址 0.0.0.0 是什么意思?
  9. 目前流行的源程序版本管理软件和项目管理的软件优缺点
  10. 南昌大学计算机网络通信用什么书,南昌大学_计算机网络教材.doc
  11. DoIP(三)—— 通信流程
  12. jsp java语法_JSP 语法 | 菜鸟教程
  13. 视频教程-一小时搞定简单VBA编程 Excel宏编程快速入门-Office/WPS
  14. box-sizing属性是什么
  15. LiveZilla 详细 配置 设置 (四) 查看成果及总结
  16. JavaWeb开发QQ动态表情-源文件
  17. 如何实现无线网卡上外网+有线上内网=同时上网
  18. Opensource Licenses
  19. 2022-2028年全球与中国智能咖啡机行业市场前瞻与投资战略规划分析
  20. 转:(记录)C语言中的itoa()函数的用法解析

热门文章

  1. 软件测试跟踪工具Bugzilla的安装 - Linux版本
  2. 河北民间组织管理系统之社会团体许可业务的项目目标文档
  3. Url解码,兼容utf-8和gb2312
  4. 【swupdate文档 五】从可信的来源更新镜像
  5. Listener 快速开始
  6. 表达式求值(NOIP2013 普及组第二题)
  7. linux shell 脚本使用
  8. 激光笔可以测光纤通断吗?
  9. DDD-Mapper
  10. 互联网创业项目失败的7大特征