【Python】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变量、类型、运算、输出
1.变量.类型.运算.输出等 # -*- coding: utf-8 -*- a=2 b=3 c=a+b print u'结果是=%i'%c #加u显示中文 str=unicode(s,"u ...
- python的对象类型-----列表&元组&字典
列表: #定义列表 l=[1,'a',[3,4]] #l=list([1,'a',[3,4]]) #取值 print(l[0]) print(l[2][0]) l=[1,2,[['a','b'],'c ...
- Python基础(2)--对象类型
Python使用对象模型来存储数据.构造任何类型的值都是一个对象 所有的Python对象都拥有三个特性:身份.类型.值 身份: 每一个对象都有一个唯一的身份来标志自己,任何对象的身份可以使用内建函数i ...
- 四:python 对象类型详解一:数字(下)
一:位操作 除了一般的数学运算,python也支持c语言中的大多数数学表达式.这包括那些把整数当作二进制位串对待的操作.例如,还可以实现位移及布尔操作: >>> x = 1 > ...
- 三:python 对象类型详解一:数字(上)
一:python 的数字类型: a)整数和浮点数 b)复数 c)固定精度的十进制数 d)有理分数 e)集合 f)布尔类型 g)无穷的整数精度 h)各种数字内置函数和模块 二:各种数字类型的详解 1,数 ...
- 1. python 类型和运算
类型和运算 (Types and Operations) Introducing Python Object Types 在非正式的意义上, 在 Python 中, 我们用一些东西做事情. " ...
- Python中的不可变对象类型与可变对象类型
https://blog.csdn.net/answer3lin/article/details/86430074 其实各个标准资料中没有说明Python有值类型和引用类型的分类,这个分类一般是C++ ...
- 《Python学习手册 第五版》 -第4章 介绍Python对象类型
本章的内容主要是介绍了Python的核心对象类型,后续的5.6.7.8.9章针对这些核心类型分别展开详细的说明 本章我认为重要的有几点 1.作者有谈到Python的知识结构,这个我感觉是一个大框架,可 ...
随机推荐
- 2017-2018-1 20155321《信息安全技术》实验二——Windows口令破解
2017-2018-1 20155321<信息安全技术>实验二--Windows口令破解 实验原理 口令破解方法 口令破解主要有两种方法:字典破解和暴力破解. 字典破解是指通过破解者对管理 ...
- 在SQL SERVER中批量替换字符串的方法
UPDATE MainData SET Content = )) , 'XM00000137' , 'XM00000078') WHERE [Key] IN (SELECT md_key FROM i ...
- 关于web服务安全的一些思考
一.问题: 在开发web项目是时,安全问题有以下几种问题: (1)用户可以自己伪造一个URL请求来进行访问吗? (2)用户不在服务器登录,可以自己封装出用户名.密码进行访问吗? (3)url的参数可以 ...
- 优步uber司机不能绑定银行卡问题
很多新加入的优步车主都发现现在不能绑定银行卡,不能绑定就收不到车费呀!现在优步公司给出的绑定地址是:http://ubercd.sojump.com/jq/4853671.aspx 但是提交后没有反映 ...
- 【LG4091】[HEOI2016/TJOI2016]求和
[LG4091][HEOI2016/TJOI2016]求和 题面 要你求: \[ \sum_{i=0}^n\sum_{j=0}^iS(i,j)*2^j*j! \] 其中\(S\)表示第二类斯特林数,\ ...
- 【LG5020】[NOIP2018]货币系统
[LG5020][NOIP2018]货币系统 题面 洛谷 题解 考场上第一眼还不会233 可以发现只要可以被其他的货币通过一些奇奇怪怪的方式表示出来的货币就\(ban\)掉即可 就是个完全背包 我是统 ...
- PHP基础知识试题
转载于:http://www.php.cn/toutiao-415599.html 1.PHP中传值与传引用的区别,什么时候传值,什么时候传引用? 按值传递:函数范围内对值任何改变在函数外部都会被忽略 ...
- python-前方高能-面向对象-进阶3
面向对象 你写代码的时候 什么时候用面向对象 代码量大,功能多的时候 处理比较复杂的角色之间的关系 qq 好友 陌生人 群 组 复杂的电商程序 公司/学校的人事管理/功能的系统 我的代码的清晰度更高了 ...
- centos7 安装rabbitmq3.4.1-1
安装环境:centos7版本 一.rabbitmq3.4.1-1安装环境配置: 安装erlang 1.创建Yum源 #创建yum源 sudo vi /etc/yum.repos.d/rabbitmq- ...
- Linux中如何安装Apache服务器
Linux中如何安装Apache服务器 由于学习的需要,所有手动安装了一下Apache源码包,安装过程中的问题千奇百怪,但是如果弄清楚了问题出在哪里,那么也不是太难.如果有学习者出现安装中的问题,可仔 ...