开始学习 Python 时,我们会陆续接触变量、字符串、列表、循环、函数和类等概念。先了解这些知识在整体框架中的位置,后面学习具体语法时,就更容易把它们联系起来。
这篇作为“Python 学习,从入门到精通”专栏的开篇,先通过一张总路线图,认识 Python 入门阶段的主要内容。本文面向 Python 3,重点介绍基础语法与常用操作;后续文章再结合代码示例和练习逐步展开。
一、先看整体知识框架
这张图将基础内容整理为十个部分:
基础语法、数据类型、运算符、流程控制、函数、数据结构、模块与包、文件操作、异常处理、面向对象编程。
第一次阅读时,可以先了解各部分的用途。随着学习深入,再回到这张图上检查哪些内容已经掌握、哪些还需要通过练习巩固。
这张图用于分类整理知识,实际学习顺序可以根据前置知识适当调整。
二、十个部分分别学什么?
1. 基础语法:掌握代码的基本写法
基础语法主要包括变量赋值、标识符命名、关键字、注释和缩进。
这一部分要解决的问题是:怎样写出结构清楚、语法正确的 Python 代码。其中,缩进需要特别重视,因为 Python 使用缩进组织代码块。
注释使用#。三引号用于字符串,也常用于书写文档字符串;多行普通注释可以逐行添加#。
2. 数据类型:认识程序处理的数据
程序处理的数据有不同类型,例如整数int、浮点数float、复数complex、布尔类型bool和字符串str。
学习时需要逐步掌握类型查看、类型转换,以及不同类型支持的操作。
这里要区分“类型”和“值”:bool是类型,True、False是它的两个取值;None是常用于表示空值或缺失值的特殊对象,其类型为NoneType。
3. 运算符:完成计算与判断
运算符用于完成算术计算、相等性比较、逻辑判断和成员检查等操作。
学习时既要认识符号,也要结合例子理解行为。例如,//表示向下取整除法,-7 // 3的结果是-3。
==用于相等性比较,is用于判断两个引用是否指向同一个对象。这两种判断需要区分。
4. 流程控制:决定程序怎样执行
流程控制主要包括条件判断和循环。
if、elif、else用于根据条件选择执行分支;for用于遍历可迭代对象;while用于在条件成立时重复执行代码。
循环中还会使用break和continue。pass则是不执行任何操作的空语句,常用作占位,不会像continue一样跳过本轮循环后面的语句。
这一部分可以结合“判断成绩等级”“累计输入的数值”等练习理解。
5. 函数:组织和复用一段逻辑
当一段代码需要重复使用,或者一个程序需要拆分成几个清楚的步骤时,可以考虑使用函数。
函数可以通过参数接收数据,并使用return返回结果。普通函数执行到末尾,或者执行不带返回值的return时,会返回None。
学习时先掌握定义、调用、参数和返回值,再逐步了解默认参数、可变参数、作用域和简单的lambda表达式。
例如,可以把“计算一组成绩的平均分”整理成函数,再在不同位置调用。
6. 数据结构:组织和操作多条数据
当需要处理一组成绩、多名学生的信息或一份名单时,需要选择合适的数据组织方式。
| 类型 | 基本特点 | 可以练习的场景 |
|---|---|---|
列表list | 有序、可变 | 保存和修改一组成绩 |
元组tuple | 有序、不可变序列 | 表示成员不需要被替换的一组数据 |
字典dict | 可变映射,通过键访问值 | 记录姓名、学号和成绩 |
集合set | 元素唯一,不支持位置索引 | 名单去重、交集和差集计算 |
“元组不可变”指元组中的元素引用不能被替换。如果元组包含列表等可变对象,这些对象内部的内容仍然可以改变。
从 Python 3.7 起,字典保证保持插入顺序,但不会自动按键或值排序。集合则不保证插入顺序。
字符串、列表、元组等本身也属于数据类型。图中分别列出“数据类型”和“数据结构”,是为了从“认识类型”和“组织、操作数据”两个角度学习。
7. 模块与包:拆分和组织代码
程序逐渐变长后,可以将相关代码放到不同模块中,再通过导入使用。
这一部分会学习import、from … import …、别名、自定义模块和包,同时认识math、random、os、sys等标准库模块。标准库模块与严格意义上的内置模块需要区分。
常规包通常以包含__init__.py的目录组织;命名空间包无需这个文件。入门时先掌握常规包的基本用法即可。
8. 文件操作:读取和保存数据
如果希望程序读取已有文本,或者在结束前保存处理结果,就需要学习文件操作。
主要内容包括文件路径、打开模式、读取、写入、编码和关闭文件。初学时可以先练习文本文件,再认识二进制模式。
文件读写优先使用with open(...) as f:,它会在退出代码块时关闭文件,包括块内发生异常的情况。文本模式可以指定编码;使用二进制模式时,不应传入encoding="utf-8"之类的文本编码参数。
9. 异常处理:理解报错并处理预期问题
程序运行时,可能遇到输入格式不正确、文件不存在、除数为零等问题。
这一部分先学习阅读错误信息,结合异常类型和回溯定位问题,再学习如何使用try、except处理预期异常,以及使用finally安排清理操作。
练习时,可以从“用户输入的成绩无法转换成数字,应该怎样提示”这样的小问题开始。
10. 面向对象编程:组织相关数据与行为
面向对象编程使用类和对象组织程序。类可以把相关的数据与操作这些数据的方法放在一起,实例则表示具体对象。
这一部分先掌握类、实例、属性、方法和实例初始化,再逐步学习封装、继承与多态。
例如,在成绩管理程序中,可以尝试用类描述学生记录,再比较它与使用字典、函数组织代码时的区别。
三、初学者可以按什么顺序学习?
上面的十个模块是知识分类。实际学习时,可以按下面的顺序推进:
先运行程序。准备环境,学会运行
.py文件,完成简单输入与输出。掌握基础写法。学习变量、常见类型、运算符、条件判断和循环。
处理多条数据。熟悉字符串、列表、元组、字典和集合的常用操作。
组织代码并保存结果。学习函数、模块、异常处理和文件读写。
完成小程序,再学习面向对象。通过实际需求理解类与对象的用途。
每学完一个主题,都可以做三件事:独立运行示例,修改输入或条件,再尝试不看答案完成一个小练习。
四、这个专栏接下来怎样展开?
后续文章会沿着这张路线图逐步讲解。每篇围绕一个主题,结合核心概念、可运行代码、输出解释、常见错误和动手练习展开。
练习也会逐渐联系起来:从记录一个人的成绩,到处理多条记录,再到使用函数整理代码、通过文件保存数据,最终完成一个小型成绩管理程序。
下一篇将从运行准备和基础语法开始,确认代码运行环境,再学习变量、命名、注释和缩进,并完成简单的输入输出练习。
学习过程中,可以随时回到这张总图,查看当前进度和后续内容。
参考资料
Python 官方教程
Python 语言参考
Python 标准库文档