将零碎的知识点体系化真的很重要,我把 Python 基础的所有要点都放在一张思维脑图(Xmind 做的)里了。不得不说思维导图真是体系化知识的好工具。
在公众号对话框回复 PYX
获取上面思维导图的 PDF
整个 Python 基础内容可被结构化成六点:
编程概论
数据
流程
函数
对象和类
高级特征
从下面动图可看出每个点的更多细节。
按上面这种方式来划分构建体系是有原因的,下面我来一一把它们串联起来。
编程概论:学习任何一种编程语言,我们都需要了解一些概论。类比计算机语言和人类语言,学习语言首先要了解其词汇和语法,再开始讲故事。
词汇包括保留字(keyword)和变量名(variable name)
语法包括缩进、冒号等等
故事可由三种方式来演绎,按顺序讲;按条件讲;重复讲
了解完概论就可以了解所有编程语言中最重要的一环,数据。
数据:数据的重要性不需要多讲,在 Python 中数据可分两大类:
元素型:整数、浮点、布尔、None
容器型:字符串、元组、列表、字典、集合
数据会被命名成变量,变量(词)之间会发现联系(句子),当你试着「用词造句讲故事」的时候,你实际创建了一个流程,而流程需要控制。
流程:类比三种演绎故事的形式,代码也可以按顺序写、按条件写(if)、重复写(while, for),这些都叫做流程控制,当然在运行不出错的时候。如果出错了需要异常处理(try, except)。因此流程控制可细分
按顺序:一句一句写
按条件:用 if 语句
按重复:
用 for 循环 - 当循环次数事先知道
用 while 循环 - 当循环次数事先不知道
要纠正:用 try, except, else, finally 语句
当你想重复使用一组语句时,你需要考虑函数。
函数:Python 定义函数有两种方式:
用 def 定义普通函数
用 lambda 定义匿名函数
Python 把函数当成「一等公民」,即可把函数当成变量使用,进而可以定义高阶函数(普通函数和匿名函数都属于低阶函数):
把函数当成输入参数
把函数当成输出结果
介绍完数据和函数后,我们可得出
如果只处理数据,将其存储在列表,字典或其他数据中
如果只处理行为,而没有存储数据,则使用函数更合适
如果同时要处理到数据和行为呢?考虑对象和类。
对象和类:对象是既具有数据又具有行为的实例,而类是对象的描述。变量和函数是零散的,而对象将它们集合起来,
在对象里也有变量,用来存储数据,这时变量又称字段(fields)
在对象里也有函数,用来操作数据,这时函数又称方法(methods)
字段和方法统称为类的属性(attributes)。
基于对象编程叫做「面向对象编程」,里面的知识点包括:实例变量、类变量、实例方法、类方法、静态方法、继承、多态、魔法方法、属性装饰器等。
高级特征:这是都是些锦上添花的东西,包括格式化字符串、正则表达式、解析表达式、生成器、迭代器和装饰器等等。一句话来总结这些知识点:
格式化字符串:f-string,用法 f' {v1} {v2} ... {vn} .'
正则表达式:r-string,用法 re.function(pattern, text)
解析表达式:列表、字典、集合解析式,用 [], {}, ()
生成器:生成器是迭代器,但反之不是
生成函数 + yield
生成表达式 + ()
迭代器:
iter(可迭代对象) --> 迭代器
迭代器是可迭代对象
装饰器:用 @decorator_function
现在我已经把整套 Python 基础知识的体系建出来了,当然每个知识点还有很多细节要去深挖。学习一个新事物时,我痴迷于去体系化其要点,去对比和类比其性质、这样知识点会越来越明晰。
最后来做个投票调查: