《Python程序设计基础》考试重点知识点大全
本文包含AI辅助整理。希望对你有用。
第1章 Python语言基础
本章是语法基础,以选择、填空、判断题为主,是所有编程题的基础。
核心必考知识点
- 1. Python核心特性:解释型语言、面向对象、跨平台、胶水语言、丰富的第三方库,代码强制缩进规范。
- 2. 环境与运行:解释器安装、Python脚本执行方式、PyCharm基础使用、help()帮助文档查看。
- • Python中一切皆对象,变量是对象的引用,不是存储容器;
- • 只能由字母、数字、下划线组成,不能以数字开头;
- • 见名知意,不使用内置函数名(如print、input)作为变量名。
- • 关键字:必须记住常见关键字(if、else、for、while、def、class、True、False、None、and、or、not、in、is、break、continue、return、pass等),关键字不能作为变量名。
- 4. 程序基本结构:IPO模型(输入Input-处理Process-输出Output)
- • 输入函数:
input(),必考:input()获取的内容默认是字符串类型,数值计算必须做类型转换。 - • 输出函数:
print(),掌握sep、end参数的使用(如print(a,b,sep=',',end=';'))。
- 5. 核心运算符与表达式(必考)
| | |
|---|
| and | 短路逻辑(and前为False则不执行后面;or前为True则不执行后面) |
| in | 字符串、列表、元组、字典的成员判断(字典判断的是键,不是值) |
| == | ==判断值是否相等,is判断内存地址是否相等(必考易错) |
| = | |
- 6. 运算优先级(必考):括号 > 算术运算符 > 比较运算符 > 布尔运算符 > 赋值运算符
- • 缩进:4个空格为1个缩进,同一代码块缩进必须一致,体现代码从属关系;
- • 注释:单行注释
#,多行注释三引号''' '''/""" """; - • 导入规范:按标准库、扩展库、自定义库顺序导入,每行只导入一个模块。
高频考点&必背
- • 逻辑值检测:Python中以下值会被判定为False:
False、None、0(所有数值类型的0)、空序列(''、[]、())、空字典{}、空集合set(),其余均为True。 - • 经典实例:判断闰年(能被4整除但不能被100整除,或能被400整除),必考填空/编程题。
- • 实例:输入用户信息,掌握类型转换、输入输出的组合使用。
易错点
- • 误用关键字、内置函数名作为变量名,导致函数失效;
- • input()获取的数值未做类型转换,直接进行算术运算报错;
第2章 数值类型与科学计算
本章以数值计算、模块使用为主,是编程题的基础,选择填空高频考察模块函数。
核心必考知识点
- • 整数
int:无大小限制,支持十进制、二进制(0b开头)、八进制(0o开头)、十六进制(0x开头); - • 浮点数
float:带小数点的数值,注意浮点数精度问题(如0.1+0.2≠0.3); - • 复数
complex:格式为实部+虚部j,如3+4j,实部虚部均为浮点数。
- •
int(x):将x转换为整数,字符串转整数时,字符串必须是整数格式; - •
complex(a,b):创建复数,a为实部,b为虚部; - •
eval():执行字符串中的表达式,如eval("1+2*3")返回7,常用于输入多值计算。
- • 加
+、减-、乘*、除/(结果为浮点数)、整除//(向下取整)、取余%、幂运算**; - • 高频考点:整除和取余的正负号问题,幂运算的优先级高于正负号。
- 4. 必考标准库模块
(1)math模块(数学计算)
必背函数:(2)random模块(随机数,编程题高频)
必背函数:
- •
random.random():生成[0.0,1.0)之间的随机浮点数; - •
random.randint(a,b):生成[a,b]之间的随机整数(闭区间,必考); - •
random.randrange(start,end,step):生成指定范围内的随机整数,不包含end; - •
random.choice(seq):从序列中随机选择一个元素; - •
random.shuffle(seq):打乱序列的顺序(原地打乱,无返回值); - •
random.sample(seq,k):从序列中随机抽取k个不重复的元素。
- • 数值取整:
math.ceil()向上取整、math.floor()向下取整、math.trunc()截断取整、round()四舍五入(内置函数); - • 常用计算:
math.sqrt()平方根、math.pow()幂运算、math.fabs()绝对值、math.factorial()阶乘; - • 三角函数:
math.sin()、math.cos()(弧度制); - • 常数:
math.pi圆周率、math.e自然常数。
- 5. 拓展模块(了解,考频较低):numpy基础数值统计、scipy科学计算、sympy符号计算,重点掌握教材实例即可。
高频考点&必背
- • 经典实例:一元二次方程求解、猜数游戏(random模块核心应用)、学生成绩统计;
- • 浮点数精度问题的处理,如用round()保留指定小数位数;
- • 数学表达式的Python写法转换(如数学公式转Python代码)。
易错点
- • 整除
//的向下取整特性,负数场景容易出错(如-5//2 = -3,不是-2); - • random.randint(a,b)是闭区间,和randrange的左闭右开区分开;
- • 浮点数精度问题导致的相等判断错误,避免直接用
==判断两个浮点数相等。
第3章 函数
本章是核心重点章节,选择、填空、编程题必考,尤其是参数传递、递归、模块导入,是大题的高频考点。
核心必考知识点
- • 函数定义:
def 函数名(参数列表):,缩进的代码块为函数体,return返回值(无return默认返回None); - • 函数调用:函数名(实参列表),必须先定义后调用;
- • 函数文档:三引号写在函数开头,可通过
函数名.__doc__查看。
- 2. 函数参数传递(100%必考)
| | |
|---|
| | |
| | |
| | 默认值参数必须放在非默认参数之后;默认值不能用可变对象(如列表)作为默认值(必考易错) |
| *args | |
| **kwargs | |
- • 解包裹传递:调用函数时,
*列表/元组可拆解序列为位置参数,**字典可拆解字典为关键字参数。
- • 格式:
lambda 参数列表: 表达式,只能有一个表达式,自动返回表达式结果; - • 常用场景:配合
sorted()、map()、filter()函数使用,作为临时函数。
- • 递归核心:函数调用自身,必须有递归出口(终止条件)和递推公式,否则会无限递归报错;
- • 通用函数:
len()、max()、min()、sum()、sorted()、reversed(); - • 类型转换:
int()、float()、str()、list()、tuple()、dict()、set(); - • 迭代相关:
range()、enumerate()、zip()、map()、filter(); - • 其他:
type()、isinstance()(判断类型,比type更常用)、id()(获取内存地址)。
- 1.
import 模块名,使用时模块名.函数名; - 2.
from 模块名 import 函数名/类名,直接使用对象; - 3.
from 模块名 import *,导入所有对象(不推荐); - 4.
import 模块名 as 别名、from 模块名 import 对象 as 别名。
- •
__name__属性:当模块被直接运行时,__name__ == '__main__';当模块被导入时,__name__为模块名,常用于编写测试代码。 - • 包的概念:包含
__init__.py文件的文件夹,用于管理多个模块; - • 第三方模块:pip安装、升级、卸载命令(
pip install 模块名、pip install --upgrade 模块名、pip uninstall 模块名)。
高频考点&必背
- • lambda函数的常用场景,如sorted的key参数。
易错点
- • 默认值参数使用可变对象(如列表),导致多次调用函数时默认值被修改;
- • 位置参数、关键字参数、默认值参数的顺序错误,导致语法报错;
- • 递归函数没有设置终止条件,或终止条件错误,导致递归深度超限;
- • 函数内修改全局变量,未用
global声明,导致创建局部变量而非修改全局变量; - • 混淆全局变量和局部变量的作用域,LEGB规则理解不到位。
第4章 流程控制及应用
本章是编程题核心章节,所有代码逻辑都依赖流程控制,分支、循环、算法是考试的重中之重,分值占比最高。
核心必考知识点
- • 双分支:
if 条件表达式: 语句块1 else: 语句块2,支持条件表达式(三元运算符):结果1 if 条件 else 结果2(高频考点) - • 多分支:
if 条件1: 语句块1 elif 条件2: 语句块2 ... else: 语句块n,elif可多个,else可选; - • match-case结构(Python3.10+):多值匹配,格式为
match 表达式: case 值1: 语句块 case 值2: 语句块 case _: 默认语句块,了解基础用法即可。
- 2. 循环结构(100%必考)
(1)for循环
(2)while循环
(3)循环控制关键字(必考)
(4)循环的else子句
- • 格式:
for/while 循环: 循环体 else: 语句块,当循环正常结束(没有被break终止)时,执行else里的语句,高频考点。
- •
continue:跳过本次循环剩余的语句,直接进入下一次循环;
- • 格式:
while 条件表达式: 循环体,常用于不确定次数的循环,条件为False时终止循环;
- • 格式:
for 变量 in 可迭代对象: 循环体,常用于遍历序列、固定次数的循环; - • 配合
range()使用:range(start,end,step),左闭右开,如range(5)生成0-4的整数序列,是固定次数循环的核心。
- 3. 异常处理(必考,选择/编程题)
try:
可能抛出异常的代码
except 异常类型1:
捕获异常1后的处理代码
except 异常类型2 as e:
捕获异常2后的处理代码,e为异常实例
except:
捕获所有其他异常(不推荐直接用,建议捕获Exception)
else:
try代码无异常时执行
finally:
无论是否有异常,一定会执行的代码(常用于资源释放)
- • 高频考点:多个except子句的顺序(必须先子类异常,后父类异常);finally的必然执行特性。
- • 错误类型:语法错误(SyntaxError)、运行时异常(如ValueError、TypeError、IndexError、KeyError、ZeroDivisionError等);
- 4. 经典算法(编程题必考,全部来自教材实例)
| | |
|---|
| | |
| | |
| 有序数据中,每次取中间值缩小查找范围,效率远高于枚举 | |
| | |
高频考点&必背
- • 教材所有经典实例必须会手写代码:百分制转五分制、素数判定、水仙花数、百钱百鸡、斐波那契数列、二分法求平方根;
- • break和continue的区别,循环else子句的执行条件;
易错点
- • if条件后的冒号
:遗漏,循环、函数定义同理,导致语法报错; - • 混淆break和continue的作用,导致循环逻辑错误;
- • 循环的边界条件错误,导致多循环一次或少循环一次;
- • 异常捕获的顺序错误,父类异常放在子类前面,导致子类异常无法被捕获。
第5章 字符串与序列
本章是全题型高频考点,序列的索引、切片是必考内容,字符串、列表、元组的操作是编程题的基础,分值占比极高。
核心必考知识点
- 1. 序列通用操作(字符串、列表、元组均适用,100%必考)
(1)索引
(2)切片(超级高频考点,必考)
(3)其他通用操作
- • 重复:
*,序列重复n次,如'ab'*3得到'ababab'; - • 长度、最值:
len()、max()、min()、sum()(数值序列)。
- • 格式:
序列[start:end:step],左闭右开,start、end、step均可省略; - • 省略start:默认从开头(step为正从0开始,step为负从-1开始);
- • 省略end:默认到结尾(step为正到最后一个元素,step为负到第一个元素);
- • 序列[::-1]:反转整个序列(回文字符串判断核心);
- • 注意:切片不会修改原序列,会返回新的序列;切片索引越界不会报错,会返回空序列。
- • 正向索引:从左到右,从0开始,0,1,2...;
- • 反向索引:从右到左,从-1开始,-1,-2,-3...;
- • 考点:通过索引访问元素,索引越界会抛出IndexError。
- • 字符串特性:不可变对象,所有修改字符串的方法都会返回新字符串,原字符串不变(必考)。
- • 必背字符串处理方法:
| | |
|---|
| find(sub) | |
| rfind(sub) | |
| index(sub) | |
| count(sub) | |
| split(sep) | |
| join(iterable) | 用字符串连接可迭代对象的元素,如','.join(['a','b']) |
| replace(old,new,count) | |
| strip() | |
| lstrip() | |
| removeprefix() | |
| upper() | |
| lower() | |
| capitalize() | |
| isdigit() | |
| isalpha() | |
| isspace() | |
| startswith(prefix) | |
| endswith(suffix) | |
- 1. f-string格式化(Python3.6+,最常用):
f"姓名:{name},年龄:{age}",支持表达式、格式控制,如{num:.2f}保留2位小数; - 2. format()方法:
"姓名:{},年龄:{}".format(name,age),支持位置、关键字、格式控制; - 3. %格式化:
"姓名:%s,年龄:%d" % (name,age),了解即可。
- • 转义字符:
\n换行、\t制表符、\\反斜杠、\'单引号、\"双引号,原始字符串r"字符串",取消转义,常用于路径、正则表达式。
- • 元组特性:不可变序列,用
()定义,元素用逗号分隔,如t = (1,2,3),单元素元组必须加逗号:(1,),否则会被识别为数值; - • 核心操作:支持索引、切片、拼接、重复等序列通用操作,因为不可变,所以没有增删改的方法;
- • 高频考点:元组的不可变性(元素不能修改、删除、添加),常用作固定数据的容器、函数多返回值、字典的键。
- • 列表特性:可变序列,用
[]定义,元素类型可不同,支持增删改查,是Python最常用的数据结构。 - • 必背列表操作方法:
| | |
|---|
| append(x) | |
| extend(iterable) | |
| insert(index,x) | |
| pop(index) | |
| remove(x) | |
| clear() | |
| del 列表[index] | |
| sort(key=None,reverse=False) | |
| reverse() | |
| index(x) | |
| count(x) | |
| copy() | |
- • 直接赋值:
b = a,b和a指向同一个列表对象,修改一个另一个也会变; - • 浅拷贝:
b = a.copy()、b = a[:]、b = list(a),创建新列表,只复制一层,若列表里有可变对象,内层对象还是引用; - • 深拷贝:
import copy; b = copy.deepcopy(a),完全复制所有层级的对象,修改互不影响。
- • 格式:
[表达式 for 变量 in 可迭代对象 if 条件],用于快速生成列表,代码简洁高效; - • 示例:
[i**2 for i in range(10) if i%2==0],生成0-9中偶数的平方列表; - • 支持嵌套循环:
[i*j for i in range(3) for j in range(2)]。
高频考点&必背
- • 字符串常用方法,尤其是查找、分割、替换、判断类方法;
- • 教材经典实例:回文字符串判断、分类统计字符个数、凯撒密码、约瑟夫环问题、股票数据分析。
易错点
- • 字符串是不可变对象,试图通过索引修改字符串的字符,会报错;
- • 切片的左闭右开特性,导致取元素时遗漏最后一个;
- • 列表直接赋值和浅拷贝、深拷贝的区别,导致修改列表时出现意外结果;
- • 列表的sort()方法是原地排序,无返回值,误用
a = a.sort()会导致a变为None;
第6章 字典与集合
本章是高频考点,选择、填空、编程题均有涉及,尤其是字典的词频统计、集合的去重和运算,是大题常考内容。
核心必考知识点
- • 字典特性:可变的键值对(key-value)映射结构,用
{}定义,如d = {"name":"张三","age":20}; - • 核心规则:键必须是不可变类型(字符串、数字、元组),且键唯一,不能重复;值可以是任意类型,可重复。
- 1. 直接赋值:
d = {"a":1, "b":2}; - 2. dict()函数:
d = dict(a=1, b=2)、d = dict([("a",1),("b",2)]); - 3. 字典推导式:
{k:v for k,v in 可迭代对象 if 条件}。
- • 必背字典操作方法:
| | |
|---|
| d[key] | |
| d.get(key, default=None) | |
| d[key] = value | |
| d.update(d2) | |
| d.pop(key) | |
| d.popitem() | 随机删除并返回最后插入的键值对(Python3.7+) |
| del d[key] | |
| d.clear() | |
| d.keys() | |
| d.values() | 获取所有的值,返回可迭代的dict_values对象 |
| d.items() | |
| d.setdefault(key, default) | 键存在则返回值,不存在则新增键值对,值为default |
- • 字典的遍历(必考):
for k,v in d.items(): print(k,v),遍历键值对;也可单独遍历键for k in d:(默认遍历键)。 - • 高频考点:字典排序,如
sorted(d.items(), key=lambda x:x[1], reverse=True),按值降序排序,词频统计核心用法。
- • 集合特性:无序、元素唯一(自动去重),可变集合用
set()或{}定义,空集合必须用set()定义({}是空字典); - • 不可变集合:
frozenset(),不可修改,可作为字典的键。 - • 增删元素:
add(x)添加一个元素、update(iterable)添加多个元素、remove(x)删除元素(不存在报错)、discard(x)删除元素(不存在不报错)、pop()随机删除一个元素、clear()清空集合。 - • 集合关系运算(必考):
| | | |
|---|
| & | intersection() | |
| | | union() |
| - | difference() | |
| ^ | symmetric_difference() | |
- • 集合关系判断:
issubset()判断是否为子集、issuperset()判断是否为超集、isdisjoint()判断两个集合是否无交集。
高频考点&必背
- • 字典的增删改查、遍历操作,get()方法的使用;
- • 词频统计(教材实例:二十大报告词频统计),必考编程题;
易错点
- • 空集合用
{}定义,导致创建的是空字典,而非空集合; - • 访问字典不存在的键,用
d[key]会报错,优先用get()方法; - • 字典遍历修改字典大小(新增/删除键),导致遍历报错。
第7章 数据处理
本章是实操大题核心章节,文件操作、数据处理是期末考试的压轴题高频考点,必须掌握核心操作和教材实例。
核心必考知识点
- 1. 文本文件操作(必考)
with open("test.txt", "r", encoding="utf-8") as f:
# 读写操作,缩进内文件对象f有效
content = f.read()
# 缩进外,文件自动关闭
- • 必背文件读写方法:
| |
|---|
f.read() | |
f.readline() | |
f.readlines() | |
| |
f.write(s) | |
f.writelines(lines) | |
- • 高频考点:大文件读取,推荐用for循环遍历文件对象(
for line in f:),逐行读取,节省内存。
- • 文件操作核心流程:打开文件 → 读写文件 → 关闭文件
- • 打开文件:
open(file, mode='r', encoding=None),返回文件对象 - • 必考打开模式:
| | |
|---|
r | | |
w | | |
a | | |
r+ | | |
b | | 配合r/w/a使用,如rb、wb,用于非文本文件(图片、视频等) |
- • 编码参数:读取中文文本时,必须指定
encoding='utf-8',避免乱码。
- • 关闭文件:
文件对象.close(),必须关闭,否则会导致资源泄露。 - • 推荐用法:
with语句(上下文管理器,必考),自动关闭文件,无需手动close,格式:
- 2. 结构化文件操作
(1)CSV文件操作
(2)JSON文件操作
- • JSON是轻量级数据交换格式,和Python的字典、列表高度兼容;
- • 内置
json模块,必背4个方法: | |
|---|
json.dumps(obj) | |
json.loads(s) | |
json.dump(obj, f) | |
json.load(f) | |
- • 考点:CSV与JSON格式转换,教材核心实例。
- • CSV是逗号分隔值的文本文件,常用于表格数据存储;
- • 读取CSV:
csv.reader(f)返回可迭代的读取器,逐行返回列表;csv.DictReader(f)按字典读取,键为表头; - • 写入CSV:
csv.writer(f)的writerow()写一行、writerows()写多行;csv.DictWriter(f,fieldnames)按字典写入。
- • 考点:读取CSV文件统计成绩、数据处理,教材核心实例。
- •
os.listdir(path):获取指定目录下的所有文件和文件夹名; - •
os.path.exists(path):判断路径是否存在; - •
os.path.isfile(path):判断是否为文件; - •
os.path.isdir(path):判断是否为文件夹; - •
os.path.join(path1,path2):拼接路径,跨平台兼容; - •
os.path.basename(path):获取文件名; - •
os.path.dirname(path):获取目录路径。
- 4. NumPy基础(考频中等,重点掌握教材实例)
- • 核心对象:ndarray多维数组,比列表运算效率更高;
- • 数组创建:
np.array()、np.arange()、np.zeros()、np.ones(); - • 数组属性:
shape形状、ndim维度、dtype数据类型; - • 数组运算:向量化运算,无需循环,直接对整个数组做算术运算;
- • 统计函数:
np.sum()、np.mean()、np.max()、np.min()、np.std(),支持按轴计算; - • 文件读写:
np.loadtxt()、np.savetxt()读写文本文件。
- 5. Pandas基础(考频中等,重点掌握教材实例)
- • 核心对象:Series(一维序列)、DataFrame(二维表格,行+列);
- • 数据读取:
pd.read_excel()读Excel文件、pd.read_csv()读CSV文件; - • 数据查看:
head()查看前几行、info()查看数据信息、describe()统计描述; - • 数据保存:
to_csv()、to_excel()保存文件。
高频考点&必背
- • 词频统计完整流程:读取文件 → 分词 → 统计词频 → 排序输出;
易错点
- • 打开文件时编码错误,中文乱码,忘记指定encoding='utf-8';
- •
w模式打开已有文件,导致原有内容被清空,数据丢失; - • 文件操作后忘记关闭文件,用with语句可避免;
- • 读写文件的模式错误,如用
r模式写文件、w模式读文件,导致报错; - • 路径拼接错误,用字符串拼接而非os.path.join(),导致跨平台不兼容。
第8章 数据可视化
本章考频根据考试大纲而定,多数院校以基础绘图题、选择填空题为主,重点掌握基础图表的绘制步骤和核心参数。
核心必考知识点
- 1. Matplotlib绘图基础
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"] # 解决中文显示
plt.rcParams["axes.unicode_minus"] = False # 解决负号显示为方块的问题
- • 绘图核心流程:导入模块 → 准备数据 → 创建画布/子图 → 绘制图表 → 设置标注/美化 → 显示/保存图表;
- • 导入约定:
import matplotlib.pyplot as plt; - • 中文显示问题(必考避坑):设置中文字体,避免中文乱码,常用设置:
- 2. 必考基础图表绘制
| | |
|---|
| plt.plot(x,y) | 线条样式、颜色、标记点设置;标题、坐标轴标签、图例、网格设置;多子图绘制 |
| plt.bar(x,height) | 柱子宽度、颜色设置;并列柱状图、堆叠柱状图;数值标注 |
| plt.pie(x,labels=labels) | 百分比显示autopct、突出显示explode、阴影shadow、起始角度startangle |
| plt.scatter(x,y) | |
| plt.hist(x,bins) | |
- • 标题与标签:
plt.title()设置标题、plt.xlabel()/plt.ylabel()设置坐标轴标签; - • 坐标轴范围:
plt.xlim()、plt.ylim()设置x/y轴的范围; - • 图例:
plt.legend()显示图例,配合绘图时的label参数使用; - • 多子图:
plt.subplot(行,列,序号)创建子图,如plt.subplot(2,2,1)创建2行2列的第1个子图; - • 保存与显示:
plt.savefig("文件名.png",dpi=300)保存图片(必须在plt.show()之前),plt.show()显示图表。
- • 雷达图、热力图、箱线图、词云图,掌握教材基础实例即可,词云图重点掌握中文分词(jieba库)和词云绘制流程。
高频考点&必背
- • 教材实例:GDP数据曲线绘制、成绩统计图表、词云图绘制。
易错点
- • 保存图片时,先执行plt.show()再savefig(),导致保存的图片空白;