本章的内容主要是介绍了Python的核心对象类型,后续的5、6、7、8、9章针对这些核心类型分别展开详细的说明

本章我认为重要的有几点

1、作者有谈到Python的知识结构,这个我感觉是一个大框架,可以方便理解Python各个细节的知识

2、Python的核心对象类型有哪些?有哪些特性?

以下就分别展开来说

1、Python知识结构:就是以下几句话,虽然短,但是对于理解后续所学习的内容都很有帮助

程序由模块组成

模块包含语句

语句包含表达式

表达式创建并处理对象

从这四句话可以看到,是由大到小递进,最小处就是对象,了解Java的人知道,它有一个观点,那就是一切皆对象,由此看来,对象就太多了,而本章及后续聚焦介绍的是Python的核心对象,既然是核心,那就是最最基础的,就像乐高积木,核心的零件就是那些最基础的形状,在此基础上,发挥每个人的想象力才能拼凑处惊人的作品,此处讲的核心对象就是那些最基础的积木

2、核心数据类型:

数字;字符串;列表;字典;元祖;文件;集合;其他核心类型

3、数字:整数、浮点数,及其他类型数据(复数、分数等)

如何创建:数字直接赋值或者直接计算

例如:1+2;a=12345

特性:支持加(+)减(-)乘(*)除(/)运算、幂运算(**)

还有一个更高级的math模块,可以导入进行很多专业的数学运算

4、字符串:一切皆可成为字符,Python中没有单字符和多字符的区别

如何创建:和数字一样,直接赋值,例如:a="ZJY"

特性:

1)字符是“序列”数据,可进行索引及分片操作

索引:就是通过位置直接操作单个字符,例如上面的a="ZJY",索引操作就是a[0],a[1],a[2],分别返回“Z”,“J”,“Y”三个字母

有一个特别说明的是,索引支持负数操作,0是第一个位置的数据,-1是最后一个位置的数据,倒数第二个位置数据就是-2,以此类推,这样以来,每个位置上的数据都可以用两个位置标示,还是以a="ZJY"为例,a[1]和a[-2]是一样的数据,可以实际操作试一下,

分片:就是通过位置获取一片的数据,例如,还是上面的a="ZJY",分片操作就是a[0:2],返回的是字母“ZJ”,在此特别说明,分片操作是“左包括右不包括”,就是a[0:2]中,包括0位置的字母“Z”,不包括2位置的“Y”,所以返回的结果会是“ZJ”,而不是“ZJY”,对于a[0:1]会返回什么,可以自己试一下

2)字符支持“+(链接字符)”和“*(重复字符)”操作

a="ZJY";b="123"

a+b的结果就是“ZJY123"

a*2的结果就是“ZJYZJY”(重复两遍)

3)字符是不可改变的/不可变性

字符类型一旦赋值就无法改变,既如果a="ZJY",你想改变a[0]位置“Z”,这样赋值是会错误的a[0]="X"

有些人会对此感到困惑,我之前创建a="ZJY",后面我还可以创建a="123",这不就是改变了原来的字符了吗?

这个问题可以等到第六章详细说明,其中涉及到a="ZJY",计算机是如何处理的,a是一个引用的名称,“ZJY”是字符对象,而“=”是赋值,把字符对象“ZJY”的内存地址和名称a相匹配,所以通过名称a可以调用字符对象“ZJY”,而a=“123"的操作,是把字符对象”123“的内存地址与名称a相配对,所以a就指向字符对象”123“,而原来的字符对象”ZJY“是依然在内存中,是没有改变的,有些对象,如果一旦没有名称或者引用指向该对象,Python的内存机制会自动回收无用的内容,这又是另一个话题了

4)字符串格式化:具有丰富的形式

可以通过两种方式,

方式1:通过“%",例如:‘%s,eggs,and %s'%('spam','SPAM')

方式2:通过format()函数,例如:’{0},eggs, and {1}'.format('spam','SPAM')

5、列表:可变得有序对象

如何创建:L=[123,"spam",1.23]

特性:

1)列表是有序对象,可以支持索引和切片操作(和字符一样)

2)列表是一个对象,可以包含任何类型,所以没有类型的约束

3)列表支持任意的嵌套,就是列表的内容可以是列表

6、字典:可变、无序的映射对象,也是Python中唯一的一种映射类型

如何创建:D={‘A’:‘a','B':'b','C':'c'}

特性

1)字典是无序的,所以无法通过索引操作数据,而且字典的健从左到右是被打乱的,也就是无序的,会根据不同系统的显示顺序会有差异

2)字典是一种映射类型,通过keys值操作数据,例如上面创建的字典D,D['A'] 会显示结果’a'

3)字典使用的经典场景就是记录不同的属性值,例如可以把一个人看着一个字典,keys值就是姓名、年龄、身高、生日等等,alues值就是Friend、30、180、12/3等等

7、元组:基本上就是一个不可以改变的列表

如何创建:T=(1,2,3,4)

特性:

1)具有列表的所有操作属性,除了无法改变之外

此处会有一个疑问,既然元组和列表这么相近,我们使用列表就好了,为什么还使用元组,而且元组一旦创建就无法改变,这就是元组存在的最大价值,就是不可改变,不可改变的另一个好处就是,元组创建后可以用在任何地方,而不用担心数据不一样,因为元组是不可改变的,也就是说元组提供了一种完整性约束

8、文件:电脑中存储的外部文件,例如txt、doc、excel、ppt等等

如何创建:通过open函数进行操作,例如:f=open('data.txt','w');f.write("Hello world \n")

特性:

1)操作不同的文件对象,需要导入不同的包,例如处理excel文件,需要导入openpyxl包

9、其他核心类型:主要是集合,集合是唯一的不可变对象的无序集合

如何创建:X={1,2,3,4}

特性:

1)无序:因为集合是无序的,所以无法通过索引来操作数据

2)不可变:也就是说,集合一旦创建,就无法改变(非绝对)

3)集合的内容是不重复的,有种类似无值得字典的健

4)集合支持一般的数学集合操作:并集、交集、差集

以上就是本章的重点内容,后续就是针对每一个核心类型,进行详细说明,下一章就是单独讲解”数值类型“

《Python学习手册 第五版》 -第4章 介绍Python对象类型的更多相关文章

  1. 《Python学习手册 第五版》 -第13章 while循环和for循环

    上一章已经讲过if条件语句,这章重点是循环语句:while.for 本章的重点内容 1.while循环 1)一般形式 2)break.continue.pass和循环的else 2.for循环 1)一 ...

  2. 《Python学习手册 第五版》 -第12章 if测试和语法规则

    本章节的内容,主要讲解if语句,if语句是三大复合语句之一(其他两个是while和for),能处理编程中大多数逻辑运算 本章的重点内容如下: 1.if语句的基本形式(多路分支) 2.布尔表达式 3.i ...

  3. 《Python学习手册 第五版》 -第11章 赋值、表达式和打印

    上一章对Python的语句和语法已经进行了基本的说明,接下来就是每个章节的详细说明,本章的主要内容就是标题中涵盖的三点:赋值语句.表达式语句.打印语句 本章重点内容如下: 1.赋值语句 1)赋值语句的 ...

  4. 《Python学习手册 第五版》 -第10章 Python语句简介

    前面在开始讲解数据类型的时候,有说过Python的知识结构,在此重温一下 Python知识结构: 程序由模块组成 模块包含语句 语句包含表达式 表达式创建并处理对象 关于知识结构,前面已经说过我自己的 ...

  5. 自学笔记系列:《Python学习手册 第五版》 -写在开始之前

    今年双十一,在当当网上买了这本书,很厚很厚的一本书,大概有将近1700页左右,的确是一个“大工程”, 关于这本书的学习,我想采用一种博客的方式进行,既是写给自己,也想分享给每一个对Python学习感兴 ...

  6. 《Python学习手册 第五版》 -第14章 迭代和推导

    承接上一章for循环的讲解,迭代和推导,是对for循环的一种深入的探索和扩展 本章重点内容 1.迭代 1)什么是迭代?都有哪些分类 2)常规的使用方法 3)多遍迭代器VS单遍迭代器 2.列表推导 1) ...

  7. 《Python学习手册 第五版》 -第18章 参数

    在函数的定义和调用中,参数是使用最多喝最频繁的,本章内容就是围绕函数的参数进行讲解 本章重点内容如下: 1.参数的传递 1)不可变得参数传递 2)可变得参数传递 2.参数的匹配模式 1)位置次序:从左 ...

  8. 《Python学习手册 第五版》 -第15章 文档

    本章主要介绍Python中的文档,会通过多种方式来说明,如果查看Python自带文档和其他参考的资料 本章重点内容 1.#注释:源文件文档 2.dir函数:以列表显示对象中可用的属性 3.文档字符串 ...

  9. 《Python学习手册 第五版》 -第16章 函数基础

    前面的章节讲解的是一些基础数据类型.基本语句使用和一些文档查看的内容,这些都是一些基础,其实还谈不上入门,只有了解了函数,才算入门 函数是编程里面使用最多的也是最基本的程序结构, 本章重点内容 1.函 ...

  10. 《Python学习手册 第五版》 -第17章 作用域

    上一章的是函数的基础,因为函数在运用过程中,是可以嵌套的,函数中是会涉及到变量的,为了明确各自变量的使用范围,系统是有一套规则或者原则的,这就是作用域的概念 本章重点内容 1.作用域:作用域的概念 2 ...

随机推荐

  1. 关于opengl中的矩阵平移,矩阵旋转,推导过程理解 OpenGL计算机图形学的一些必要矩阵运算知识

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/12166896.html 为什么引入齐次坐标的变换矩阵可以表示平移呢? - Yu Mao的回答 ...

  2. Spring Cloud Stream消息驱动之RocketMQ入门(一)

    SpringCloudStream目前支持的中间件有RabbitMQ.Kafka,还有我最近在学习的RocketMQ,以下是我学习的笔记 学习Spring cloud Stream 可以先学习一下了解 ...

  3. 迷你PS小程序-集成的开放式画报、油墨电子签名、图片拖拽可单独食用

    米娜桑,哦哈哟~ 个人制作,该文章主要讲解最近基于uni-app框架编写的集图文拖拽等多方位编辑.油墨电子签名.开放式海报于一体的小程序的制作思路和实现代码. 目录 1.完整源码链接 2.实现思路 3 ...

  4. Map2Shp软件字符编码解决方案——彻底杜绝Shape格式乱码

    在使用Shape文件时,如果里面有中文属性信息时,经常会遇到属性信息变为乱码.尤其是ArcGIS10.2.1之后,Esri改变了软件的默认字符编码规则,打开之前保存的Shapefile文件,总会不时遇 ...

  5. redis订阅发布简单实现

    适用场景 业务流程遇到大量异步操作,并且业务不是很复杂 业务的健壮型要求不高 对即时场景要求不高 原理介绍 redis官网文档:https://redis.io/topics/notification ...

  6. 《C# 爬虫 破境之道》:第二境 爬虫应用 — 第三节:处理压缩数据

    续上一节内容,本节主要讲解一下Web压缩数据的处理方法. 在HTTP协议中指出,可以通过对内容压缩来减少网络流量,从而提高网络传输的性能. 那么问题来了,在HTTP中,采用的是什么样的压缩格式和机制呢 ...

  7. String中文字符转码

    如何使用String构造方法和String.getBytes()做好中文字符转码 @Test public void test() { String testStr = "中"; ...

  8. 详细解析Redis中的布隆过滤器及其应用

    欢迎关注微信公众号:万猫学社,每周一分享Java技术干货. 什么是布隆过滤器 布隆过滤器(Bloom Filter)是由Howard Bloom在1970年提出的一种比较巧妙的概率型数据结构,它可以告 ...

  9. AVR单片机教程——串口接收

    本文隶属于AVR单片机教程系列.   上一讲中,我们实现了单片机开发板向电脑传输数据.在这一讲中,我们将通过电脑向单片机发送指令,让单片机根据指令控制LED.这一次,两端的TX与RX需要交叉连接,单片 ...

  10. 百度搜索关键词联想API JSONP使用实例

    许多搜索引擎都提供了关键词联想api,且大多数都是jsonp. Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获 ...