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:正则表达式(匹配、替换字符串)。
-