Python 面试全维度考点
核心概念 Python 面试全维度考点汇总,涵盖基础语法、数据结构、面向对象、并发等。
1. 基础语法(必考题,初级必考)
1.1. 数据类型与底层原理
- 可变/不可变类型:
list/dict/set可变;int/str/tuple/float不可变
- 考题:
a=[1,2];b=a;a.append(3),b结果?为什么元组里放列表能修改?
- 字符串操作:
strip/split/join/f-string、编码utf-8/gbk、中文乱码处理 - 数字、布尔、空值:
None和0/""/[]的区别 - 容器特性:
- list:有序可重复,底层动态数组
- tuple:不可变,哈希可缓存
- dict:3.7+有序,哈希表,key必须可哈希
- set:去重、交集差集,底层哈希
1.2. 流程控制、函数
- 循环:
for/while、break/continue/else(循环else冷门高频考题) - 函数基础:形参实参、位置参数、关键字参数、默认参数坑
经典坑:
def func(a=[]):a.append(1)默认列表复用问题 - 不定长参数:
*args / **kwargs作用、解包 - 作用域:
global / nonlocal、LEGB变量查找规则 - 匿名函数
lambda、高阶函数map/filter/sorted
1.3. 推导式、生成器、迭代器(高频)
- 列表/字典/集合推导式
- 迭代器
__iter__/__next__、生成器yield
- 考题:生成器和列表对比,内存优势;
yield执行流程
- 生成器表达式
(i for i in range(10))
1.4. 异常处理
try-except-else-finally、自定义异常、常见报错:IndexError/KeyError/ValueError
2. Python 核心进阶(中级必问,运维/后端必考)
2.1. 面向对象 OOP
- 类、实例、属性、方法:实例方法/类方法
@classmethod/静态方法@staticmethod区别 - 封装、继承、多态、多重继承MRO查找顺序
- 魔术方法:
__init__/__new__/__str__/__repr__/__del__ - 私有属性
_x / __x名称改写机制 - 装饰器(重中之重)
- 手写计时装饰器、带参数装饰器
- 原理:闭包、语法糖
@
2.2. 内存与底层机制
- 垃圾回收:引用计数、分代GC、循环引用问题
- 小整数池、字符串驻留机制
is和==区别:is判断内存地址,==判断值相等- GIL全局解释锁(必考)
- GIL是什么、带来什么问题、CPU密集/IO密集怎么规避
2.3. 文件与IO、上下文管理器
open()读写、with上下文管理器原理__enter__/__exit__- 大文件读取优化,避免一次性读入内存
2.4. 并发编程(运维SRE高频)
- 进程、线程、协程区别
- threading多线程、thread锁、线程安全问题
- multiprocessing多进程(绕开GIL)、进程池
- asyncio 异步协程:
async/await、事件循环 - 适用场景:IO密集用多线程/协程;CPU密集用多进程
3. 运维/自动化方向专属考点(贴合你的岗位:SRE、云运维、Paramiko)
- 系统操作
- os / sys / subprocess / paramiko 库使用
- subprocess 调用shell、获取输出、阻塞/非阻塞
- paramiko:exec_command 和 invoke_shell 区别、交互式会话、sftp上传下载
- 文件处理
- pathlib / os.path 路径处理、递归遍历目录、日志切割
- 正则 re 模块
match/search/findall、分组捕获、贪婪匹配 - 并发批量运维
- 多线程批量ssh主机、线程池控制并发数防雪崩
- 数据处理
json/yaml 读写、配置文件解析、日志清洗
4. AI/深度学习方向(你用到torch,会额外考察)
- numpy 数组操作、广播机制、维度变换
- torch 基础:tensor、
torch.exp、自动微分、requires_grad - 模型推理、张量维度、cuda/gpu加速
- 数据加载、dataset/dataloader
5. 数据库 & 网络编程
- MySQL:pymysql 使用、事务、SQL注入、参数化查询
- Redis:redis-py、缓存击穿/穿透、批量读写
- 网络:requests 爬虫、接口请求、超时、session会话、http状态码
- 接口开发:FastAPI/Flask基础(如果涉及平台开发)
6. 算法与手写代码(现场编程必考)
6.1. 基础算法
- 排序:冒泡、快速排序、二分查找
- 数组:去重、两数之和、翻转列表
- 字符串:反转、回文、单词分割
6.2. 运维常考手写题
- 手写ssh批量执行命令(封装paramiko)
- 日志关键词过滤统计
- 多线程并发执行任务
- 装饰器:给ssh函数加重试、计时
- 生成器分批读取大文件
7. 项目实战问答(简历重点)
- 你用Python做过什么自动化工具/AIOps平台?
- 批量管理多台服务器时,如何解决并发、超时、异常重连?
- 代码遇到过什么性能瓶颈?怎么优化内存/速度?
- 如何处理脚本日志、异常捕获、告警输出?
- paramiko 踩过什么坑(401、上下文超长、交互式输入密码)?
8. 高频面试真题(直接背)
- 列表和元组区别,各自适用场景
- GIL锁的作用、优缺点、怎么规避
- 装饰器实现原理,手写一个计算函数运行时间的装饰器
- 迭代器和生成器区别,为什么生成器省内存
- 多线程和多进程区别,什么场景用哪个
exec_command和invoke_shell有什么差异is和==有什么不同- 默认参数列表陷阱是什么,如何避免
- 垃圾回收机制,循环引用怎么处理
- with语句底层原理,自定义上下文管理器
9. 区分岗位难度
- 初级运维Python:基础语法、文件、subprocess、paramiko、简单循环并发
- 中级SRE/平台开发:装饰器、并发、OOP、数据库、性能优化、批量运维框架
- AI算法/训练岗:numpy、torch、自动微分、张量、数据处理、基础算法
- 后端开发:web框架、接口、数据库、高并发、缓存、安全
关联文档