Python 期末知识点汇总
本文聚焦 Python 期末考核核心知识点,从基础到进阶分层梳理,覆盖语法、数据结构、流程控制、函数、面向对象、文件操作、异常处理等高频考点,适合期末复习冲刺。
一、基础语法(必考)
1. 编码规范与执行
PEP 8 规范:缩进用 4 个空格、单行代码不超过 79 字符、变量命名小写 + 下划线(如
student_name)、常量全大写(如MAX_NUM)。执行方式:
交互式:终端输入
python进入,直接执行代码;脚本式:编写
.py文件,终端执行python 文件名.py;模块导入:
import 模块名,导入后执行模块内代码(if __name__ == "__main__":仅脚本直接运行时执行内部代码)。
注释:单行
# 注释内容,多行"""多行注释"""/'''多行注释'''。
2. 变量与数据类型
变量特性:动态类型(无需声明类型),赋值即定义,如
a = 1、a = "hello"(同一变量可改类型)。基本数据类型:
| 类型 | 示例 | 关键考点 |
|---|---|---|
| 整数 (int) | 10、-5 | 支持加减乘除、取模 (%)、幂 (**) |
| 浮点数 (float) | 3.14、2.0 | 精度问题(如0.1+0.2≠0.3) |
| 字符串 (str) | "abc"、'123' | 不可变、索引 (s[0])、切片 (s[1:3])、拼接 (+)、重复 (*) |
| 布尔值 (bool) | True、False | 本质是 int 子类(True=1,False=0),支持and/or/not |
| 空值 (None) | None | 与 0、空字符串、空列表不等价 |
- 类型转换:
int()、float()、str()、bool()(空值 / 0 转False,非空 / 非 0 转True)。
3. 复合数据类型(核心)
| 类型 | 定义方式 | 可变性 | 核心操作 | 考点 |
|---|---|---|---|---|
| 列表 (list) | [1, "a", [2,3]] | 可变 | 索引、切片、append()、pop()、remove()、sort() | 增删改查、列表推导式 |
| 元组 (tuple) | (1, "a")、(2,) | 不可变 | 索引、切片、count()、index() | 不可变性、元组解包(a,b=(1,2)) |
| 字典 (dict) | {"name":"Tom", "age":18} | 可变 | d[key]、keys()、values()、items()、get() | 键值对操作、键的唯一性 |
| 集合 (set) | {1,2,3} | 可变 | add()、remove()、交集 (&)、并集 (` | )、差集(-`) |
二、流程控制(必考)
1. 条件判断
\# 基础格式 if 条件1:   代码块1 # 缩进4空格 elif 条件2:   代码块2 else:   代码块3条件表达式:
比较运算符:
==、!=、<、>、<=、>=;逻辑运算符:
and(与)、or(或)、not(非);成员运算符:
in(存在)、not in(不存在);身份运算符:
is(内存地址相同)、is not(注意==判断值,is判断地址)。
2. 循环结构
(1)for 循环(遍历可迭代对象)
\# 遍历range for i in range(1, 10, 2): # 起始1,结束10(不含),步长2   print(i) \# 遍历列表/字典 for item in \[1,2,3]:   print(item) for k, v in {"a":1, "b":2}.items():   print(k, v)(2)while 循环(条件循环)
i = 0 while i < 5:   print(i)   i += 1 # 必须修改条件变量,避免死循环(3)循环控制
break:终止整个循环;continue:跳过当前轮次,进入下一轮;else:循环正常结束(未被break终止)时执行。
三、函数(高频考点)
1. 函数定义与调用
def 函数名(参数列表):   """文档字符串:函数说明(可选)"""   函数体   return 返回值 # 无return则返回None \# 调用 result = 函数名(参数)2. 参数类型(核心考点)
| 参数类型 | 示例 | 说明 |
|---|---|---|
| 位置参数 | def add(a,b): ...→add(1,2) | 按参数定义顺序传递 |
| 关键字参数 | add(a=1, b=2) | 按参数名传递,可打乱顺序 |
| 默认参数 | def add(a, b=0): ... | 定义时指定默认值,调用时可省略 |
| 可变参数 | def func(*args, **kwargs): ... | *args接收任意位置参数(元组),**kwargs接收任意关键字参数(字典) |
3. 函数高级特性
匿名函数(lambda):
lambda 参数: 表达式(单行函数),如lambda x: x*2(计算 x 的 2 倍)。作用域:LEGB 规则(局部→嵌套→全局→内置),
global修改全局变量,nonlocal修改嵌套作用域变量。递归函数:函数调用自身,必须有终止条件(如阶乘:
def fact(n): return 1 if n==1 else n*fact(n-1))。
四、面向对象编程(OOP,重点)
1. 类与对象的定义
class Person:   # 类属性(所有实例共享)   species = "人类"       # 构造方法(初始化实例属性)   def \_\_init\_\_(self, name, age):   self.name = name # 实例属性   self.age = age       # 实例方法(self指向当前实例)   def say\_hello(self):   print(f"我是{self.name},今年{self.age}岁")       # 类方法(cls指向类)   @classmethod   def show\_species(cls):   print(cls.species) \# 创建对象(实例化) p1 = Person("Tom", 18) p1.say\_hello() # 调用实例方法 Person.show\_species() # 调用类方法2. 三大特性
封装:隐藏内部实现,通过方法访问属性(如
get_name()/set_name()),伪私有属性(__attr,实际重命名为_类名__attr)。继承:子类继承父类属性和方法,
class Student(Person): ...,通过super().__init__()调用父类构造方法,支持多继承(遵循 MRO 顺序)。多态:不同子类重写父类方法,调用时表现不同行为(如
Cat和Dog都重写Animal的speak()方法)。
3. 常用魔术方法
| 方法 | 作用 |
|---|---|
__init__ | 初始化实例 |
__str__ | 打印对象时返回自定义字符串 |
__len__ | 实现len(对象)的功能 |
五、文件操作(必考)
1. 基础读写(推荐 with 语句,自动关闭文件)
\# 读文件(r:只读,utf-8编码避免中文乱码) with open("test.txt", "r", encoding="utf-8") as f:   content = f.read() # 读取全部内容   # line = f.readline() # 逐行读取   # lines = f.readlines() # 读取所有行到列表 \# 写文件(w:覆盖写入,a:追加写入) with open("test.txt", "w", encoding="utf-8") as f:   f.write("Hello Python\n") # 写入字符串   f.writelines(\["第一行\n", "第二行\n"]) # 写入多行列表2. 打开模式速记
| 模式 | 说明 |
|---|---|
| r | 只读(默认) |
| w | 写入,覆盖原有内容 |
| a | 追加,在文件末尾写入 |
| b | 二进制模式(如 rb、wb) |
| + | 读写模式(如 r+、w+) |
六、异常处理(必考)
1. 基础语法
try:   # 可能出错的代码   num = int(input("请输入数字:"))   print(10 / num) except ValueError:   print("输入的不是数字!") except ZeroDivisionError:   print("不能除以0!") except Exception as e: # 捕获所有异常(兜底)   print(f"出错了:{e}") else: # 无异常时执行   print("执行成功!") finally: # 无论是否异常都执行(如关闭文件)   print("程序结束")2. 常见异常类型
SyntaxError:语法错误(编写时就会报错);NameError:变量未定义;TypeError:类型不匹配(如字符串 + 数字);IndexError:列表索引越界;KeyError:字典键不存在;FileNotFoundError:文件不存在。
七、进阶高频考点
1. 推导式(简洁高效,常考)
列表推导式:
[x*2 for x in range(10) if x % 2 == 0](生成偶数的 2 倍列表);字典推导式:
{k: v+1 for k, v in {"a":1, "b":2}.items()};集合推导式:
{x for x in [1,2,2,3]}(去重)。
2. 字符串格式化(常考)
f-string(Python3.6+,推荐):
f"姓名:{name},年龄:{age}";format 方法:
"姓名:{},年龄:{}".format(name, age);占位符:
"姓名:%s,年龄:%d" % (name, age)。
3. 模块与包
模块导入:
import 模块名、import 模块名 as 别名、from 模块名 import 函数/类;常用内置模块:
os:文件 / 路径操作(os.path.join()、os.mkdir());datetime:日期时间处理(datetime.datetime.now());random:随机数生成(random.randint(1,10));re:正则表达式(匹配、替换字符串)。