news 2026/3/12 10:09:55

Python——50道面试题,面试巩固必看,建议收藏!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python——50道面试题,面试巩固必看,建议收藏!

以下是2026年最新版 Python 面试题精选50道(涵盖基础 → 中级 → 高级),适合后端、数据分析、自动化测试、AI 等方向面试准备。建议先自己尝试回答,再对照解析巩固记忆。

我将题目分为三个梯度,便于分阶段复习:

  • 1–20:基础 & 必知必会(社招/校招初筛常见)
  • 21–35:中高级 & 原理向(中高级岗位重点)
  • 36–50:高级 & 底层/性能/设计向(大厂/资深岗位高频)

每题后附简洁答案 + 考察点 + 追问方向,便于深度准备。

1–20 基础 & 必知必会

  1. Python 中列表和元组的区别?什么时候用哪个?
    :列表可变(mutable),元组不可变(immutable);列表用 [],元组用 ();元组可作为 dict 键、函数多返回值;列表适合动态增删,元组适合固定结构/常量/哈希。
    考察:可变性、内存、哈希性

  2. *args**kwargs是什么?有什么用?
    *args收集位置参数成元组,**kwargs收集关键字参数成字典;常用于函数装饰器、灵活接口、继承 super().init()。
    追问:写一个接受任意参数的函数

  3. Python 中==is的区别?
    ==比较值,is比较身份(id)。小整数/字符串有缓存机制,-5~256 整数、部分字符串is为 True。
    高频追问a = 257; b = 257; a is b结果?

  4. 浅拷贝和深拷贝的区别?如何实现?
    :浅拷贝只复制第一层(copy.copy / 切片),深拷贝递归复制所有层(copy.deepcopy)。嵌套可变对象时深拷贝才真正独立。
    代码import copy; b = copy.deepcopy(a)

  5. Python 中可变对象和不可变对象有哪些?
    :不可变:int、float、str、tuple、frozenset、bytes
    可变:list、dict、set、bytearray、自定义类(未重写hash等)

  6. range()xrange()的区别?(Python2 vs 3)
    :Python3 中range()就是 Python2 的xrange(),返回迭代器,内存友好;Python2range()返回列表。

  7. Python 中passbreakcontinue的作用?
    :pass 占位符(空函数/类);break 跳出当前循环;continue 跳过本次循环进入下一次。

  8. 什么是 duck typing?
    :鸭子类型——“如果它走路像鸭子,叫声像鸭子,那么它就是鸭子”。关注行为而非类型,常用于协议/魔术方法。

  9. __init____new__的区别?
    __new__是静态方法,先创建实例(返回 cls 的实例),__init__初始化已创建的实例。通常只重写__init__,单例模式才重写__new__

  10. Python 中@staticmethod@classmethod@property区别?
    :staticmethod 无隐式参数;classmethod 第一个参数是 cls;property 把方法伪装成属性(getter/setter/deleter)。

  11. Python 中的 GIL 是什么?对多线程有何影响?
    :全局解释器锁(Global Interpreter Lock)。同一时刻只有一个线程执行 Python 字节码。CPU 密集型任务多线程不加速,IO 密集型仍受益。

  12. Python 中常见的内存管理机制?
    :引用计数 + 分代垃圾回收(gc 模块)。小对象池(-5~256 整数、部分字符串)。

  13. isinstance()type()的区别?
    isinstance(obj, (list, tuple))支持元组判断继承关系;type(obj)只返回确切类型。

  14. Python 中列表推导式、字典推导式、生成器表达式写法?

    [x**2forxinrange(10)]# 列表{x:x**2forxinrange(10)}# 字典(x**2forxinrange(10))# 生成器
  15. try...except...else...finally中 else 和 finally 的执行时机?
    :else 只在没有异常时执行;finally 无论是否异常都执行(常用于资源释放)。

  16. Python 中__slots__有什么用?
    :限制实例属性,节省内存(尤其大量小对象时),禁止__dict__

  17. Python 中的命名空间有哪几种?LEGB 规则是什么?
    :Local → Enclosing → Global → Built-in
    查找顺序:局部 → 闭包 → 全局 → 内置

  18. Python 中nonlocalglobal的作用?
    :nonlocal 修改外层函数(非全局)的变量;global 修改模块级变量。

  19. Python 中 sort() 和 sorted() 的区别?
    :sort() 是列表方法,原地排序返回 None;sorted() 是内置函数,返回新列表,可作用于任何可迭代对象。

  20. Python 中如何实现单例模式?(至少两种方式)

    方式1:重写__new__
    方式2:装饰器 / 元类 / 模块导入(最常用)

21–35 中高级 & 原理向

  1. Python 中描述符(Descriptor)是什么?property 底层原理?
    :实现了__get____set____delete__的类。property 就是描述符的简化写法。

  2. Python 中元类(metaclass)是什么?常见使用场景?
    :创建类的类(type 是最常见的元类)。ORM(如 Django Model)、自动注册、属性校验。

  3. Python 中的 MRO(方法解析顺序)是什么?C3 线性化算法?
    :多继承时方法查找顺序。Python3 全用 C3(合并+拓扑排序)。

  4. Python 中__getattribute____getattr__区别?
    __getattribute__每次属性访问都调用;__getattr__只在普通查找失败时调用。

  5. Python 中生成器和迭代器的区别?如何自定义迭代器?
    :迭代器实现__iter____next__;生成器是迭代器的简写(yield)。生成器自动实现迭代器协议。

  6. @functools.lru_cache原理和使用场景?
    :最近最少使用缓存装饰器,常用于递归(如斐波那契)、避免重复计算昂贵函数。

  7. Python 中协程、生成器、async/await 的关系?
    :生成器 → 协程基础;Python 3.5+ 用 async def / await 实现原生协程(基于生成器)。

  8. Python 中 contextmanager 和 with 语句底层原理?
    :实现了__enter____exit__的对象;@contextmanager 装饰器把生成器转为上下文管理器。

  9. Python 中 pickle 和 json 的区别?安全性?
    :pickle 可序列化任意 Python 对象(包括函数、类),但不安全(反序列化可执行代码);json 只支持基本类型,跨语言、安全。

  10. Python 中__mro____bases____subclasses__()分别是什么?
    mro方法解析顺序元组;bases直接基类元组;subclasses() 当前类的直接子类列表。

  11. Python 中内存泄漏的常见原因?如何排查?
    :循环引用 + 未清理全局变量/缓存;大对象未释放;线程/协程泄漏。
    工具:objgraph、heapy、tracemalloc、gc.get_objects()

  12. Python 中多进程 vs 多线程 vs 多协程适用场景?
    :CPU 密集 → 多进程(multiprocessing);IO 密集 → 多线程/协程(asyncio);混合 → ProcessPoolExecutor + asyncio。

  13. Python 中如何实现异步 IO?常见库?
    :asyncio + aiohttp + aiomysql 等;或 trio/curio。

  14. Python 中常见的 WSGI/ASGI 服务器有哪些?
    :WSGI:gunicorn + uvicorn;ASGI:uvicorn、hypercorn、daphne。

  15. Python 中装饰器带参数怎么写?
    :三层嵌套,最外层接收参数,返回真正的装饰器函数。

36–50 高级 & 底层/性能/设计向

  1. Python 中整数对象在内存中如何存储?大整数如何处理?
    :小整数缓存池;大整数用 ob_digit 数组(30位一组)实现任意精度。

  2. Python 中字符串 intern 机制?
    :编译时常量字符串、部分运行时字符串会 intern(放入 interned 池),相同内容指向同一对象。

  3. Python 中 dict 底层实现?为什么 Python 3.7+ dict 有序?
    :3.6 前 hash table + 开放寻址;3.7+ 插入顺序维护(compact dict + indices 数组)。

  4. Python 中 set 和 dict 的底层数据结构?
    :都是哈希表,set 是 dict 的 value 为 dummy 的特例。

  5. Python 中列表 append 操作的时间复杂度?扩容策略?
    :均摊 O(1);扩容策略:2倍或 1.125 倍(Python 3.3+ 更平滑)。

  6. Python 中如何实现一个高性能的 LRU Cache?
    :collections.OrderedDict + move_to_end();或 functools.lru_cache(maxsize=128)

  7. Python 中如何避免循环导入(circular import)?
    :延迟导入(函数内 import);重构模块;使用 importlib.import_module

  8. Python 中常见的 monkey patch 使用场景?
    :测试 mock、热修复线上 bug、临时修改第三方库行为。

  9. Python 中如何实现一个线程安全的单例?
    :加锁(threading.Lock) + 双检锁;或用模块导入天然单例。

  10. Python 中垃圾回收的阈值机制(generation)?
    :三代:0代(频繁)、1代、2代;阈值可通过 gc.set_threshold() 调整。

  11. Python 中如何调试内存泄漏?
    :tracemalloc + snapshot;objgraph.show_most_common_types();memory_profiler

  12. Python 中 Cython、Numba、PyPy 的区别和适用场景?
    :Cython → 静态编译到 C;Numba → JIT 编译数值计算;PyPy → 解释器带 JIT,全局提速。

  13. Python 中如何实现一个简单的协程调度器?
    :用生成器 + yield + send;或直接用 asyncio 的 event loop。

  14. Python 中常见的反序列化漏洞(pickle RCE)如何防范?
    :永远不要 pickle untrusted data;用 json/yaml/toml;或限制 pickle 的允许类。

  15. 如果让你设计 Python 的包管理工具(pip 的竞品),你会怎么考虑?
    :依赖解析(SAT solver)、锁文件(requirements.txt → poetry.lock)、环境隔离(venv)、缓存、增量安装、跨平台一致性、支持 git/monorepo 等。

建议收藏 & 刷题节奏

  • 第一遍:快速过 1–20,默写关键代码
  • 第二遍:深入 21–35,画图理解 MRO、描述符、GIL
  • 第三遍:重点攻 36–50 + 手写 LRU / 单例 / 上下文管理器
  • 每天 5–10 道 + 代码实现 + 追问准备

祝你面试顺利,拿到心仪 offer!
有想重点讲解/手写代码的题目,评论告诉我~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/4 1:28:08

升级YOLO11后,推理速度提升明显

升级YOLO11后,推理速度提升明显 1. YOLO11带来的性能飞跃 你有没有遇到过这样的情况:模型训练好好的,一到推理阶段就卡得不行?尤其是部署在边缘设备上时,帧率掉得让人都不敢看。最近我们团队在升级目标检测方案时&am…

作者头像 李华
网站建设 2026/3/11 16:01:46

Orkes Conductor SQL注入漏洞(CVE-2025-66387)分析

LevelBlue SpiderLabs: Orkes Conductor中的SQL注入:CVE-2025-66387 2025年12月18日 阅读时间:1分钟 作者:Tim Stamopoulos 我们的团队在Orkes Conductor平台(版本5.2.4 | v1.19.12)中发现了一个漏洞,该漏洞…

作者头像 李华
网站建设 2026/3/12 0:08:42

小米多项 AI 创新成果入选国际顶级会议 ICASSP 2026

近日,IEEE 国际声学、语音与信号处理会议(ICASSP 2026)公布了论文录用结果。小米在音频理解、音乐生成评估、通用音频-文本预训练、视频到音频合成、长视频理解、联邦学习泛化以及多模态多语言检索等多个 AI 领域的技术方向的研究成果成功入选…

作者头像 李华
网站建设 2026/3/11 16:59:04

cursor JBPM 7+

cursor JBPM 7 集成工作流方面表现一般啊,弄不出来啊。投喂数据项目不够,构建系统框架还是不够给力,因为复杂度高,熟练度,逻辑太多。 这个是我们老早就做的OAMS系统 OAMS 办公自动化 AI犯错误表现,因此需要…

作者头像 李华
网站建设 2026/3/10 23:44:21

Cute_Animal_For_Kids_Qwen_Image用户体验报告:教师与家长反馈分析

Cute_Animal_For_Kids_Qwen_Image用户体验报告:教师与家长反馈分析 1. 项目背景与核心功能 Cute_Animal_For_Kids_Qwen_Image 是基于阿里通义千问大模型开发的专用图像生成工具,专注于为儿童教育和家庭互动场景提供高质量、风格统一的可爱动物图片。该…

作者头像 李华
网站建设 2026/3/4 10:11:39

Qwen1.5-0.5B热更新机制:模型无缝切换部署方案

Qwen1.5-0.5B热更新机制:模型无缝切换部署方案 1. 背景与目标:轻量级AI服务的现实挑战 在边缘设备和资源受限环境中,部署大语言模型(LLM)一直是个难题。传统做法是为不同任务加载多个专用模型——比如用BERT做情感分…

作者头像 李华