Skip to content

Python 面试高频题总索引

本文件汇总 14 个章节的高频面试题,按章节归类、按难度标星。 每题完整答案(含「考察点 / 标准答案 / 加分项 / 易错点」)请跳转到对应章节文档的「面试高频题」小节查看。


难度图例

  • ⭐ 入门必会(基础题)
  • ⭐⭐ 进阶常考
  • ⭐⭐⭐ 大厂高频
  • ⭐⭐⭐⭐ 资深岗位 / 字节阿里腾讯一面必问

第 1 章 · Python 是什么 & 为什么火

详细答案见 01_intro.md

#题目难度关键词
1Python 是解释型还是编译型语言?⭐⭐编译为字节码 / PVM 解释 / 混合型
2CPython / Jython / PyPy 有什么区别?⭐⭐⭐实现 / JIT / JVM
3.pyc 文件是什么?什么时候生成?⭐⭐字节码缓存 / __pycache__
4一行 print('hi') 背后发生了什么?⭐⭐⭐⭐词法 / 语法 / 字节码 / PVM
5Python 2 和 Python 3 最关键的区别?print / unicode / 整除 / range
6为什么 Python 用缩进做语法?强制风格 / 减少括号 / PEP 8

第 2 章 · 基础语法与数据类型

详细答案见 02_basic_types.md

#题目难度关键词
1is== 的区别?小整数缓存陷阱?⭐⭐⭐id / 值比较 / [-5,256]
2列表和元组的核心区别?为什么有元组?⭐⭐可变 / 哈希 / 性能
3字典是怎么实现的?为什么 3.7 后有序?⭐⭐⭐⭐开放寻址 / 紧凑布局 / 插入序
4浅拷贝和深拷贝的区别?什么时候各用?⭐⭐⭐copy / deepcopy / 嵌套引用
5字符串拼接 +''.join() 哪个快?为什么?⭐⭐⭐不可变 / O(n²) / O(n)
6f-string、%.format() 怎么选?性能 / 可读性

第 3 章 · 控制流与函数

详细答案见 03_flow_function.md

#题目难度关键词
1函数默认参数为可变对象有什么坑?⭐⭐⭐默认值只算一次 / None 哨兵
2*args**kwargs 怎么用?⭐⭐解包 / 转发
3闭包是什么?常见应用场景?⭐⭐⭐函数 + 环境 / 装饰器基础
4LEGB 作用域规则是什么?⭐⭐⭐Local / Enclosing / Global / Builtin
5globalnonlocal 的区别?⭐⭐模块级 vs 嵌套函数
6列表推导和 map 哪个更 Pythonic?⭐⭐可读性 / 性能

第 4 章 · 面向对象编程

详细答案见 04_oop.md

#题目难度关键词
1__init____new__ 的区别?⭐⭐⭐创建 vs 初始化 / 单例模式
2Python 的多继承 MRO 是怎么算的?⭐⭐⭐⭐C3 线性化 / 钻石继承
3@classmethod / @staticmethod 区别?⭐⭐cls / 普通函数包装
4__slots__ 的作用?什么时候用?⭐⭐⭐节省内存 / 禁止动态属性
5@property 怎么实现的?⭐⭐⭐描述符协议
6元类(metaclass)是什么?什么时候用?⭐⭐⭐⭐type / ORM / 框架

第 5 章 · 模块、包与依赖管理

详细答案见 05_module_package.md

#题目难度关键词
1import 的查找顺序是什么?⭐⭐⭐内置 / sys.path / 缓存
2__init__.py 有什么作用?空文件可以吗?⭐⭐标识包 / 命名空间包
3相对导入 vs 绝对导入区别?⭐⭐. / 模块运行
4为什么要用虚拟环境?怎么创建?⭐⭐隔离 / venv / 多版本
5pip / poetry / uv 怎么选?⭐⭐锁文件 / 速度

第 6 章 · 异常处理与文件 IO

详细答案见 06_exception_io.md

#题目难度关键词
1try/except/else/finally 各自什么时候执行?⭐⭐else 无异常 / finally 总执行
2except Exception 捕获所有异常有什么坑?⭐⭐⭐吞异常 / KeyboardInterrupt
3上下文管理器是什么?怎么实现?⭐⭐⭐with / __enter__ / __exit__
4@contextmanager 怎么实现上下文管理?⭐⭐⭐生成器 / yield
5open 不用 with 会有什么问题?⭐⭐资源泄漏 / 文件句柄

第 7 章 · 迭代器、生成器、装饰器

详细答案见 07_iter_gen_decorator.md

#题目难度关键词
1可迭代对象 vs 迭代器区别?⭐⭐⭐__iter__ / __next__
2生成器和列表的本质区别?什么时候用生成器?⭐⭐⭐惰性求值 / 内存
3yield fromfor + yield 好在哪?⭐⭐⭐委托 / 异常透传
4装饰器原理?为什么需要 functools.wraps⭐⭐⭐⭐函数对象 / 元数据
5写一个带参数的装饰器(如重试 N 次)⭐⭐⭐⭐三层闭包
6类装饰器和函数装饰器区别?⭐⭐⭐__call__

第 8 章 · 并发:多线程 / 多进程 / GIL

详细答案见 08_concurrency.md

#题目难度关键词
1什么是 GIL?为什么 Python 有 GIL?⭐⭐⭐⭐线程安全 / 引用计数 / 性能权衡
2GIL 让多线程没用?什么场景适合多线程?⭐⭐⭐⭐IO 密集仍有效
3多线程 vs 多进程 vs 协程怎么选?⭐⭐⭐IO / CPU / 高并发
4multiprocessingthreading 慢在哪?⭐⭐⭐进程创建 / IPC
5Lock / RLock / Semaphore 区别?⭐⭐⭐重入 / 信号量
6Python 3.13 的 No-GIL 是什么?⭐⭐⭐⭐PEP 703

第 9 章 · 异步编程 asyncio

详细答案见 09_asyncio.md

#题目难度关键词
1协程和线程的本质区别?⭐⭐⭐用户态 / 内核态
2async def 函数直接调用会发生什么?⭐⭐⭐返回协程对象 / 不执行
3事件循环是怎么调度的?⭐⭐⭐⭐epoll / Future / Task
4await 一个非 awaitable 会怎样?⭐⭐TypeError
5同步代码混入 asyncio 会怎样?⭐⭐⭐阻塞事件循环 / executor
6gatherwait 的区别?⭐⭐⭐异常处理 / 返回值

第 10 章 · 标准库精华

详细答案见 10_stdlib.md

#题目难度关键词
1defaultdictdict.setdefault 区别?⭐⭐默认工厂
2Counter 怎么快速找 Top N?⭐⭐most_common
3lru_cache 是怎么实现的?怎么清空?⭐⭐⭐双向链表 + dict
4正则贪婪 vs 非贪婪?怎么写不回溯的正则?⭐⭐⭐*? / 原子组
5logging 五大级别?怎么写到文件?⭐⭐DEBUG/INFO/WARNING/ERROR/CRITICAL

第 11 章 · 内存模型与垃圾回收

详细答案见 11_memory_gc.md

#题目难度关键词
1Python 的引用计数机制怎么工作?⭐⭐⭐refcount 字段 / +1/-1
2循环引用怎么解决?分代 GC 是什么?⭐⭐⭐⭐3 代 / 阈值 / 不可达
3__del__ 有什么坑?⭐⭐⭐循环引用阻止 GC
4为什么有小整数缓存?范围多少?⭐⭐⭐[-5, 256]
5字符串驻留 intern 是什么?⭐⭐⭐标识符 / sys.intern
6弱引用什么时候用?⭐⭐⭐缓存 / 观察者模式

第 12 章 · 性能优化与调试

详细答案见 12_performance.md

#题目难度关键词
1timeittime.time() 区别?⭐⭐多次取最小
2cProfile 怎么用?怎么读结果?⭐⭐⭐tottime / cumtime
3一段慢代码怎么排查?⭐⭐⭐⭐火焰图 / line_profiler
4numba 和 cython 区别?⭐⭐⭐JIT / AOT
5pdb 常用命令?⭐⭐n / s / c / b / p

第 13 章 · 常用第三方库

详细答案见 13_libraries.md

#题目难度关键词
1requestsurllib 区别?API 友好 / Session
2numpy 为什么比 list 快这么多?⭐⭐⭐连续内存 / 向量化 / SIMD
3pandas 的 apply 比循环快吗?⭐⭐⭐仍是 Python 循环 / 矢量化
4FastAPI 比 Flask 快在哪?⭐⭐⭐ASGI / 类型注解 / 自动文档
5pydantic 是怎么做数据校验的?⭐⭐⭐模型类 / Rust 内核 v2

第 14 章 · 综合实战项目

详细答案见 14_project.md

#题目难度关键词
1设计一个 CLI 工具应该考虑哪些方面?⭐⭐⭐argparse / 配置 / 日志
2设计一个并发爬虫怎么避免被封?⭐⭐⭐⭐限速 / UA / 代理池 / 重试
3FastAPI 项目怎么组织目录结构?⭐⭐⭐分层 / 路由 / 服务 / 仓储

🎯 高频「跨章节」综合题

#题目涉及章节
A实现一个线程安全的单例模式(多种方式)Ch 4 + Ch 8
B用装饰器实现一个 LRU 缓存Ch 7 + Ch 10
C写一个异步爬虫,并发数限制为 10Ch 7 + Ch 9 + Ch 13
D设计一个生产者-消费者模型(线程版 + 协程版)Ch 8 + Ch 9
EPython 项目部署上线要考虑什么?Ch 5 + Ch 13