Python核心编程笔记----Python对象

简介:

本章内容:

Python对象

內建类型

标准类型操作符

值的比较

对象身份比较

布尔类型

标准类型內建函数

标准类型总览

各种类型

不支持的类型

Python对象

 所有Python对象都有三个特性:身份,类型和值

 身份:唯一的身份标识,对象的内存地址,内建函数id()可以得到。(极少用到)     只读

 类型:对象的类型决定该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。內建函数type()查看对象的类型,因为在python中类型也是对象,所以type()返回的是对象而不是简单的字符串。 只读

 值:对象表示的数据项

 对象属性:python用句点(.)标记法来访问属性。最常用的属性是函数和方法,   也有一些python类型也有数据属性,含有数据属性的 对象包括:类,类实例,模块,复数和文件

        

标准类型

  数字

  Integer     整型

  Boolean   布尔型

  Long integer  长整型

  Floathing point real number  浮点型

  Complex  number  复数型

  String     字符串

  List          列表

  Tuple      元组

  Dictionary   字典

其他內建类型:

  类型

  Null对象

  文件

  集合/固定集合

  函数/方法

  模块

  类

类型对象和type类型对象

  >>> type(42)

  <type 'int'>

 >>> type(type(42))

 <type 'type'>   所有类型对象的类型是type    默认元类

None------Python的Null对象

 Null对象或者NoneType只有一个值None,它不支持任何运算也没有任何內建方法。None没有什么有用的属性,它的布尔值总是False

 对象的布尔值是False: None False 所有的值为零的数 0(整型)0.0(浮点型)0L(长整型) 0.0+0.0J(复数)“ ”(空字符串)[ ](空列表)( )(空元组){ }(空字典) 

内部类型

 代码,帧,跟踪记录,切片,省略,Xrange

代码对象:

        代码对象是编译过的python源代码片段,它是可执行对象。通过调用內建函数compile()可以得到代码对象。代码对象可以被exec命令或eval()內建函数执行      
        代码对象是函数的一个属性

帧对象:

   帧对象表示Python的执行栈帧。每次函数调用产生一个帧,每一个帧对象都会相应创建一个C栈帧。用到帧对象的一个地方是跟踪记录对象     

 跟踪记录对象:

   当异常发生时,一个包含针对异常的栈跟踪信息的跟踪记录对象被创建。如果一个异常有自己的处理程序,处理程序就可以访问这个跟踪记录对象。

切片对象:

   当使用python扩展的切片语法时,会创建切片对象。

   切片语法允许对不同的索引切片操作,包括步进切片、多维切片和省略切片。

   多维切片语法: sequence[start1:end1,start2:end2]或使用省略sequence[...,start1:end1],也可以由內建函数slice()来生成

   步进切片:sequence[起始索引:结束索引:步进值]

>>> foostr = 'abcde'

>>> foostr[::-1]

'edcba'

>>> foostr[::-2]

'eca'

>>> foolist = [123,'xba',342.23,'abc']

>>> foolist[::-1]

['abc', 342.23, 'xba', 123]

省略对象:

       

XRange对象:

   调用內建函数xrange()会生成一个xrange对象。是range的兄弟版,用于需要节省内存使用或range()无法完成的超大数据集场合。

       

标准类型操作符

对象值的比较

   >>> 2 == 2

    True

    >>> 2.46 <= 8.33

    True

    >>> 'abc' == 'xyz'

    False

    >>> 3 < 4 < 7

    True

    >>> 4 > 3 == 3

    True

    >>> 4 < 3 < 5 != 2 < 7

    False

    比较操作是比较的对象的数值而不是对象本身

标准类型值比较操作符:

    expr1 < expr2        ;  expr1小于expr2

    expr1 > expr2        ;  expr1大于expr2

    expr1 <= expr2      ;  expr1小于等于expr2

    expr1 >= expr2      ;  expr1大于等于expr2

    expr1 == expr2      ;  expr1等于expr2

    expr1  != expr2       ;  expr1不等于expr2

    expr1 <> expr2      ;  expr1不等于expr2

对象身份比较:  
    对象可以赋值到另一个变量,因为每个变量都指向同一个数据对象,只要任何一个引用发生改变,该对象的其他引用也会随之改变   
    foo1和foo2指向相同的对象    

    foo1 = foo2 = 4.3

            foo1 = 4.3

            foo2 = foo1

 foo1和foo2指向不同的对象

    foo1 = 4.3

    foo2 = 1.3 + 3.0

 测试俩个变量是否指向同一个对象:

    a is b

    id(a)  == id(b)

>>> a = [ 5,'hat',-9.3]

>>> b = a

>>> a is b

True

>>> a is not b

False

>>> b = 2.5e-5

>>> b

2.5e-05

>>> a

[5, 'hat', -9.3]

>>> a is b

False

>>> a is not b

True

标准类型对象身份比较操作符

obj1 is obj2       ;obj1和obj2是同一个对象

obj1 is not obj2    ;obj1和obj2不是同一个对象

    布尔类型

标准类型布尔操作符

not expr                 ;expr的逻辑非 

expr1 and expr2    ;expr1和expr2的逻辑与

expr1 or expr2       ;expr1和expr2的逻辑或

标准类型內建函数

cmp(obj1,obj2)                  比较obj1和obj2,根据比较结果返回整型i:

              i < 0 if obj1 < obj2

              i > 0 if obj1 > obj2

              i == 0 if obj1 == obj2

repr(obj) 或 `obj`   返回一个对象的字符串表示

str(obj)          返回对象适合可读性好的字符串表示

type(obj)         得到一个对象的类型,并返回相应的type对象   type(object)                                     


存储模型分类:

标量/原子类型      数值,字符串

容器类型          列表、元组、字典


更新模型:

可变类型          列表,字典

不可变类型         数字,字符串,元组


访问类型

直接访问           数字

顺序访问           字符串、列表、元组

映射访问           字典










本文转自 wpf926 51CTO博客,原文链接:http://blog.51cto.com/wupengfei/1752287,如需转载请自行联系原作者
目录
相关文章
|
4天前
|
数据采集 数据可视化 数据挖掘
【新手解答】Python中Pandas的初学者笔记
【新手解答】Python中Pandas的初学者笔记
4 0
|
5天前
|
C++ Python
Python中的类与对象
Python中的类与对象
6 1
|
5天前
|
JSON 数据格式 开发者
pip和requests在Python编程中各自扮演着不同的角色
【5月更文挑战第9天】`pip`是Python的包管理器,用于安装、升级和管理PyPI上的包;`requests`是一个HTTP库,简化了HTTP通信,支持各种HTTP请求类型及数据交互。两者在Python环境中分别负责包管理和网络请求。
24 5
|
8天前
|
存储 Python 容器
Python高级编程
Python集合包括可变的set和不可变的frozenset,用于存储无序、不重复的哈希元素。创建集合可使用{}或set(),如`my_set = {1, 2, 3, 4, 5}`。通过add()添加元素,remove()或discard()删除元素,如`my_set.remove(3)`。
11 0
|
9天前
|
测试技术 Python
Python模块化方式编程实践
【5月更文挑战第5天】Python模块化编程提升代码质量,包括:定义专注单一任务的模块;使用`import`导入模块;封装函数和类,明确命名便于重用;避免全局变量降低耦合;使用文档字符串增强可读性;为每个模块写单元测试确保正确性;重用模块作为库;定期维护更新以适应Python新版本。遵循这些实践,可提高代码可读性、重用性和可维护性。
36 2
|
10天前
|
Java 开发者 索引
Python基础语法:类笔记
本篇博文是把自己在学习python类的过程中自己理解和笔记,一点一点总结的写出出来,做一个总结,加深对面向对象编程的理解。
|
14天前
|
测试技术 调度 索引
python编程中常见的问题
【4月更文挑战第23天】
32 2
|
15天前
|
网络协议 算法 网络架构
Python网络编程之udp编程、黏包以及解决方案、tcpserver
Python网络编程之udp编程、黏包以及解决方案、tcpserver
|
15天前
|
机器学习/深度学习 数据挖掘 算法框架/工具
Python:编程的艺术与魅力
Python:编程的艺术与魅力
25 3
|
15天前
|
机器学习/深度学习 数据可视化 数据挖掘
实用技巧:提高 Python 编程效率的五个方法
本文介绍了五个提高 Python 编程效率的实用技巧,包括使用虚拟环境管理依赖、掌握列表推导式、使用生成器提升性能、利用装饰器简化代码结构以及使用 Jupyter Notebook 进行交互式开发。通过掌握这些技巧,可以让你的 Python 编程更加高效。