本文系统梳理了 Python 期末考试中常见的考点,包括变量、数据类型、数据结构、流程控制、函数与模块、异常处理、文件操作、面向对象等。每个部分均配有定义、要点归纳、示例代码及考试提示,帮助同学高效复习、查漏补缺。
在学习 Python 的过程中,期末考试往往汇总了整个学期所学的核心知识点,是对理解与应用能力的一次全面检验。通过系统化的复习,不仅能够巩固基础概念,还能提高编程思维与解决问题的效率,为后续进阶学习打下坚实基础。在本课程中,Python 既是学习编程的入门语言,也是完成数据处理、自动化脚本和简单项目的主要工具,它的灵活性与丰富生态使其在实际应用中具有举足轻重的地位。
本文将按照以下结构展开,帮助同学有条不紊地进行复习:
3.1 变量(Variables):介绍变量的定义、动态类型特性及常见操作。
3.2 数据类型(Data Types):讲解数字、字符串、布尔值和 None 的使用与互转。
3.3 数据结构(Data Structures):覆盖列表、元组、集合和字典的原理与操作。
3.4 流程控制(Control Flow):梳理条件分支与循环的语法及典型用法。
3.5 函数与模块(Functions & Modules):详解函数定义、参数传递以及模块导入机制。
3.6 异常处理(Exception Handling):阐述 try/except 结构与自定义异常实践。
3.7 文件操作(File I/O):展示文件读写与上下文管理的常用范式。
3.8 面向对象(OOP):剖析类、继承、多态及魔法方法的核心思想。
3.9 常用标准库(Standard Libraries):概览 os、sys、json、datetime 等常见库的用法。
3.10 常见习题与解答:提供若干典型练习题及详尽解析,帮助检验复习效果。
接下来,将逐一深入上述各章节,配合示例代码与考试提示,帮助你高效、有针对性地掌握期末考试重点。
变量是对内存中某个数据的“标签”,用来存储和引用各种类型的值。
Python 为动态弱类型语言,变量在赋值时自动创建,类型可随时改变。
# 单个赋值
x = 42
name = "Bob"
# 多重赋值
a, b, c = 1, 2, 3
# 交换变量
a, b = b, a
# 链式赋值
x = y = z = 0
x = 100
print(x, type(x)) # 100
x = [1, 2, 3]
print(x, type(x)) # [1, 2, 3]
注意变量命名规则:只能包含字母、数字、下划线,不能以数字开头,区分大小写。
考题常考“类型追踪”:看赋值顺序后变量最终类型。
Python 内建基本类型:整数 int
、浮点数 float
、字符串 str
、布尔值 bool
及特殊值 None
。
不同类型支持不同操作,且可通过内建函数互转。
# 数值运算
a = 5 # int
b = 2.5 # float
c = a + b # 7.5
# 字符串操作
s = "Hello"
t = s + " World" # 拼接
u = s * 3 # 重复
# 布尔与 None
flag = True
empty = None
# 类型转换
int("123") # 123
float("3.14") # 3.14
str(100) # "100"
bool(0) # False
print(type(10)) #
print(type(3.14)) #
print(bool("")) # False
print(int(7.9), float(3))# 7 3.0
注意布尔转换规则:只有空字符串、0、None
、空容器为 False
,其余均为 True
。
考题常让写类型转换结果或指出错误的转换。
列表(list):有序可变序列。
元组(tuple):有序不可变序列。
集合(set):无序不重复元素集合。
字典(dict):键–值对映射,无序。
# 列表
lst = [1, 2, 3]
lst.append(4)
lst[0] = 0
# 元组
tpl = (1, 2, 3)
# tpl[0] = 0 # 会报错
# 集合
st = {1, 2, 3}
st.add(4)
st.remove(2)
# 字典
d = {"a": 1, "b": 2}
d["c"] = 3
val = d.get("b")
lst = [3, 1, 2]
lst.sort()
print(lst) # [1, 2, 3]
d = dict.fromkeys(["x", "y"], 0)
print(d) # {'x': 0, 'y': 0}
区分可变与不可变类型,考题常设计对列表和元组操作的选择题。
熟练掌握字典的增删查改,以及 in
判断键是否存在。
用于根据条件执行不同分支或进行循环操作,是编程逻辑的基础。
# 条件语句
if x > 0:
print("正数")
elif x == 0:
print("零")
else:
print("负数")
# for 循环
for i in range(5):
print(i)
# while 循环
i = 0
while i < 3:
print(i)
i += 1
# 循环控制
for i in range(5):
if i == 2:
continue
if i == 4:
break
else:
print("循环正常结束")
for ch in "abc":
print(ch.upper())
# A B C
i = 0
while i < 3:
print(i)
i += 1
else:
print("结束")
# 0 1 2 结束
注意 for-else
与 while-else
的执行时机:正常循环结束才执行 else
。
常见题型为“输出结果”或“填空”形式测试流程分支和循环中断。
函数:组织代码的独立单元,实现重复利用与逻辑封装。
模块:以 .py
文件形式存在,可被导入复用,支持命名空间隔离。
# 函数定义
def add(x, y=10):
return x + y
# 可变参数
def foo(*args, **kwargs):
print(args, kwargs)
# Lambda 表达式
square = lambda x: x*x
# 模块导入
import math
from math import sqrt, pi
import my_module as mm
# 主程序保护
if __name__ == "__main__":
print("作为脚本执行")
def greet(name):
print(f"Hello, {name}!")
greet("Alice") # Hello, Alice!
import datetime
print(datetime.datetime.now().year) # 当前年份
理解参数类型:位置参数、默认参数、可变参数(*args
)和关键字参数(**kwargs
)。
会考察模块导入方式与作用域,注意 from module import *
的命名冲突风险。
捕获并处理程序运行时错误,保证程序健壮性和可读性。
try:
x = 1 / 0
except ZeroDivisionError as e:
print("除零错误", e)
except Exception:
print("其他错误")
else:
print("无异常时执行")
finally:
print("无论是否异常都执行")
# 自定义异常
class MyError(Exception):
pass
raise MyError("自定义异常示例")
try:
num = int(input("请输入整数:"))
except ValueError:
print("输入格式错误")
else:
print("输入的数字是", num)
finally:
print("感谢使用")
了解各内建异常类型及继承关系。
常见考法为让补全 try/except/else/finally
结构或判断输出。
读写磁盘上的文本或二进制文件,实现数据持久化。
# 文本文件
with open("data.txt", "r", encoding="utf-8") as f:
content = f.read()
with open("out.txt", "w") as f:
f.write("Hello\n")
# 二进制文件
with open("img.png", "rb") as f:
data = f.read()
lines = []
with open("names.txt") as f:
for line in f:
lines.append(line.strip())
print(lines)
掌握文件打开模式(r
, w
, a
, b
)。
理解 with
上下文管理的自动关闭机制。
用“类”和“对象”模拟现实世界事物,支持继承、多态和封装。
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
raise NotImplementedError
class Dog(Animal):
def speak(self):
return f"{self.name} says Woof!"
d = Dog("Buddy")
print(d.speak())
# 魔法方法示例
class Vector:
def __init__(self, x, y):
self.x, self.y = x, y
def __add__(self, other):
return Vector(self.x+other.x, self.y+other.y)
def __repr__(self):
return f"Vector({self.x}, {self.y})"
v1 = Vector(1, 2)
v2 = Vector(3, 4)
print(v1 + v2) # Vector(4, 6)
熟悉 __init__
, __str__
, __repr__
, __eq__
等常用魔法方法。
理解继承与方法重写,多态调用的实际效果。
Python 附带丰富标准库,涵盖文件操作、进程管理、数据序列化等常见功能。
import os, sys, json, datetime, random, math
# os
print(os.listdir("."))
# sys
print(sys.argv)
# json
data = {"a": 1}
s = json.dumps(data)
obj = json.loads(s)
# datetime
now = datetime.datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))
# random
print(random.choice([1,2,3]))
# math
print(math.sqrt(16))
import json
with open("conf.json") as f:
cfg = json.load(f)
print(cfg.get("debug", False))
熟悉常用库的导入和主要接口。
考题常让补全代码片段或指出输出结果。
列表推导式:写出生成 [0,2,4,6,8]
的列表推导表达式。
字典合并:合并两个字典 a
、b
,并说明 Python 3.5+ 与 3.9+ 的区别。
装饰器:实现一个计算函数执行时间的装饰器。
# 1. 列表推导
evens = [i*2 for i in range(5)]
# 2. 字典合并
# Py3.5–3.8
c = {**a, **b}
# Py3.9+
c = a | b
# 3. 计时装饰器
import time
def timer(func):
def wrapper(*args, **kw):
start = time.time()
res = func(*args, **kw)
print(f"耗时:{time.time()-start:.4f}s")
return res
return wrapper
练习写出常见一行表达式(列表推导、条件表达式等)。
对比不同版本特性(如 f-string、型别提示、合并运算符)。
理解装饰器原理:返回函数、闭包以及 @
语法糖。