Python 期末复习知识点汇总

Python 期末知识点汇总

本文聚焦 Python 期末考核核心知识点,从基础到进阶分层梳理,覆盖语法、数据结构、流程控制、函数、面向对象、文件操作、异常处理等高频考点,适合期末复习冲刺。

一、基础语法(必考)

1. 编码规范与执行

  • PEP 8 规范 :缩进用 4 个空格、单行代码不超过 79 字符、变量命名小写 + 下划线(如student_name)、常量全大写(如MAX_NUM)。

  • 执行方式

    • 交互式:终端输入python进入,直接执行代码;

    • 脚本式:编写.py文件,终端执行python 文件名.py

    • 模块导入:import 模块名,导入后执行模块内代码(if __name__ == "__main__":仅脚本直接运行时执行内部代码)。

  • 注释 :单行# 注释内容,多行"""多行注释"""/'''多行注释'''

2. 变量与数据类型

  • 变量特性 :动态类型(无需声明类型),赋值即定义,如a = 1a = "hello"(同一变量可改类型)。

  • 基本数据类型

类型 示例 关键考点
整数 (int) 10-5 支持加减乘除、取模 (%)、幂 (**)
浮点数 (float) 3.142.0 精度问题(如0.1+0.2≠0.3
字符串 (str) "abc"'123' 不可变、索引 (s[0])、切片 (s[1:3])、拼接 (+)、重复 (*)
布尔值 (bool) TrueFalse 本质是 int 子类(True=1False=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

&#x20;   print(i)

\# 遍历列表/字典

for item in \[1,2,3]:

&#x20;   print(item)

for k, v in {"a":1, "b":2}.items():

&#x20;   print(k, v)
(2)while 循环(条件循环)
复制代码
i = 0

while i < 5:

&#x20;   print(i)

&#x20;   i += 1  # 必须修改条件变量,避免死循环
(3)循环控制
  • break:终止整个循环;

  • continue:跳过当前轮次,进入下一轮;

  • else:循环正常结束(未被break终止)时执行。

三、函数(高频考点)

1. 函数定义与调用

复制代码
def 函数名(参数列表):

&#x20;   """文档字符串:函数说明(可选)"""

&#x20;   函数体

&#x20;   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:

&#x20;   # 类属性(所有实例共享)

&#x20;   species = "人类"

&#x20;  &#x20;

&#x20;   # 构造方法(初始化实例属性)

&#x20;   def \_\_init\_\_(self, name, age):

&#x20;       self.name = name  # 实例属性

&#x20;       self.age = age

&#x20;  &#x20;

&#x20;   # 实例方法(self指向当前实例)

&#x20;   def say\_hello(self):

&#x20;       print(f"我是{self.name},今年{self.age}岁")

&#x20;  &#x20;

&#x20;   # 类方法(cls指向类)

&#x20;   @classmethod

&#x20;   def show\_species(cls):

&#x20;       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 顺序)。

  • 多态 :不同子类重写父类方法,调用时表现不同行为(如CatDog都重写Animalspeak()方法)。

3. 常用魔术方法

方法 作用
__init__ 初始化实例
__str__ 打印对象时返回自定义字符串
__len__ 实现len(对象)的功能

五、文件操作(必考)

1. 基础读写(推荐 with 语句,自动关闭文件)

复制代码
\# 读文件(r:只读,utf-8编码避免中文乱码)

with open("test.txt", "r", encoding="utf-8") as f:

&#x20;   content = f.read()  # 读取全部内容

&#x20;   # line = f.readline()  # 逐行读取

&#x20;   # lines = f.readlines()  # 读取所有行到列表

\# 写文件(w:覆盖写入,a:追加写入)

with open("test.txt", "w", encoding="utf-8") as f:

&#x20;   f.write("Hello Python\n")  # 写入字符串

&#x20;   f.writelines(\["第一行\n", "第二行\n"])  # 写入多行列表

2. 打开模式速记

模式 说明
r 只读(默认)
w 写入,覆盖原有内容
a 追加,在文件末尾写入
b 二进制模式(如 rb、wb)
+ 读写模式(如 r+、w+)

六、异常处理(必考)

1. 基础语法

复制代码
try:

&#x20;   # 可能出错的代码

&#x20;   num = int(input("请输入数字:"))

&#x20;   print(10 / num)

except ValueError:

&#x20;   print("输入的不是数字!")

except ZeroDivisionError:

&#x20;   print("不能除以0!")

except Exception as e:  # 捕获所有异常(兜底)

&#x20;   print(f"出错了:{e}")

else:  # 无异常时执行

&#x20;   print("执行成功!")

finally:  # 无论是否异常都执行(如关闭文件)

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

相关推荐
千寻技术帮2 小时前
10400_基于Springboot的职业教育管理系统
java·spring boot·后端·毕设·文档·职业教育
Non importa2 小时前
用滑动窗口代替暴力枚举:算法新手的第二道砍
java·数据结构·c++·学习·算法·leetcode·哈希算法
涛声依旧Cjt2 小时前
Spring AOP实战--优雅的对出参进行脱敏
java·spring·springaop 实战·aop 优雅脱敏·spring 脱敏
free-elcmacom2 小时前
机器学习进阶<10>分类器集成:集成学习算法
python·算法·机器学习·集成学习
灰乌鸦乌卡2 小时前
练手项目0 介绍
java
laocooon5238578862 小时前
C语言枚举知识详解与示例
java·c语言·数据库
全栈陈序员2 小时前
【Python】基础语法入门(十八)——函数式编程初探:用 `map`、`filter`、`reduce` 和 `lambda` 写出更简洁的代码
开发语言·人工智能·python·学习
m5655bj2 小时前
如何使用 Python 调整 PDF 页面顺序?
python·pdf
数据科学项目实践2 小时前
建模步骤 3 :数据探索(EDA) — 1、初步了解数据:自定义函数
大数据·人工智能·python·机器学习·matplotlib·数据可视化