博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python对象类型及其运算
阅读量:5233 次
发布时间:2019-06-14

本文共 3699 字,大约阅读时间需要 12 分钟。

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'    图解过程

1192415-20170704212200737-1468123535.png

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

1192415-20170704212219847-124398847.png

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

转载于:https://www.cnblogs.com/fanison/p/7118590.html

你可能感兴趣的文章
python3--算法基础:二分查找/折半查找
查看>>
Perl IO:随机读写文件
查看>>
转:基于用户投票的排名算法系列
查看>>
WSDL 详解
查看>>
[转]ASP数组全集,多维数组和一维数组
查看>>
C# winform DataGridView 常见属性
查看>>
逻辑运算和while循环.
查看>>
Nhiberate (一)
查看>>
c#后台计算2个日期之间的天数差
查看>>
安卓开发中遇到的小问题
查看>>
ARTS打卡第3周
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
cookies相关概念
查看>>
CAN总线波形中ACK位电平为什么会偏高?
查看>>
MyBatis课程2
查看>>
桥接模式-Bridge(Java实现)
查看>>
svn客户端清空账号信息的两种方法
查看>>
springboot添加servlet的两种方法
查看>>
java的Array和List相互转换
查看>>
layui父页面执行子页面方法
查看>>