Python

Python 面试全维度考点

·8 分钟阅读·2801 字

Python 面试全维度考点 的详细笔记

📋 目录

Python 面试全维度考点

核心概念 Python 面试全维度考点汇总,涵盖基础语法、数据结构、面向对象、并发等。

1. 基础语法(必考题,初级必考)

1.1. 数据类型与底层原理

  1. 可变/不可变类型:list/dict/set 可变;int/str/tuple/float 不可变
  • 考题:a=[1,2];b=a;a.append(3),b结果?为什么元组里放列表能修改?
  1. 字符串操作:strip/split/join/f-string、编码 utf-8/gbk、中文乱码处理
  2. 数字、布尔、空值:None0/""/[] 的区别
  3. 容器特性:
  • list:有序可重复,底层动态数组
  • tuple:不可变,哈希可缓存
  • dict:3.7+有序,哈希表,key必须可哈希
  • set:去重、交集差集,底层哈希

1.2. 流程控制、函数

  1. 循环:for/whilebreak/continue/else(循环else冷门高频考题)
  2. 函数基础:形参实参、位置参数、关键字参数、默认参数坑 经典坑:def func(a=[]):a.append(1) 默认列表复用问题
  3. 不定长参数:*args / **kwargs 作用、解包
  4. 作用域:global / nonlocal、LEGB变量查找规则
  5. 匿名函数 lambda、高阶函数 map/filter/sorted

1.3. 推导式、生成器、迭代器(高频)

  1. 列表/字典/集合推导式
  2. 迭代器 __iter__/__next__、生成器 yield
  • 考题:生成器和列表对比,内存优势;yield 执行流程
  1. 生成器表达式 (i for i in range(10))

1.4. 异常处理

try-except-else-finally、自定义异常、常见报错:IndexError/KeyError/ValueError

2. Python 核心进阶(中级必问,运维/后端必考)

2.1. 面向对象 OOP

  1. 类、实例、属性、方法:实例方法/类方法@classmethod/静态方法@staticmethod区别
  2. 封装、继承、多态、多重继承MRO查找顺序
  3. 魔术方法:__init__/__new__/__str__/__repr__/__del__
  4. 私有属性 _x / __x 名称改写机制
  5. 装饰器(重中之重)
  • 手写计时装饰器、带参数装饰器
  • 原理:闭包、语法糖@

2.2. 内存与底层机制

  1. 垃圾回收:引用计数、分代GC、循环引用问题
  2. 小整数池、字符串驻留机制
  3. is== 区别:is 判断内存地址,== 判断值相等
  4. GIL全局解释锁(必考)
  • GIL是什么、带来什么问题、CPU密集/IO密集怎么规避

2.3. 文件与IO、上下文管理器

  1. open() 读写、with 上下文管理器原理 __enter__/__exit__
  2. 大文件读取优化,避免一次性读入内存

2.4. 并发编程(运维SRE高频)

  1. 进程、线程、协程区别
  2. threading多线程、thread锁、线程安全问题
  3. multiprocessing多进程(绕开GIL)、进程池
  4. asyncio 异步协程:async/await、事件循环
  5. 适用场景:IO密集用多线程/协程;CPU密集用多进程

3. 运维/自动化方向专属考点(贴合你的岗位:SRE、云运维、Paramiko)

  1. 系统操作
  • os / sys / subprocess / paramiko 库使用
  • subprocess 调用shell、获取输出、阻塞/非阻塞
  • paramiko:exec_command 和 invoke_shell 区别、交互式会话、sftp上传下载
  1. 文件处理
  • pathlib / os.path 路径处理、递归遍历目录、日志切割
  1. 正则 re 模块
    match/search/findall、分组捕获、贪婪匹配
  2. 并发批量运维
  • 多线程批量ssh主机、线程池控制并发数防雪崩
  1. 数据处理
    json/yaml 读写、配置文件解析、日志清洗

4. AI/深度学习方向(你用到torch,会额外考察)

  1. numpy 数组操作、广播机制、维度变换
  2. torch 基础:tensor、torch.exp、自动微分、requires_grad
  3. 模型推理、张量维度、cuda/gpu加速
  4. 数据加载、dataset/dataloader

5. 数据库 & 网络编程

  1. MySQL:pymysql 使用、事务、SQL注入、参数化查询
  2. Redis:redis-py、缓存击穿/穿透、批量读写
  3. 网络:requests 爬虫、接口请求、超时、session会话、http状态码
  4. 接口开发:FastAPI/Flask基础(如果涉及平台开发)

6. 算法与手写代码(现场编程必考)

6.1. 基础算法

  1. 排序:冒泡、快速排序、二分查找
  2. 数组:去重、两数之和、翻转列表
  3. 字符串:反转、回文、单词分割

6.2. 运维常考手写题

  1. 手写ssh批量执行命令(封装paramiko)
  2. 日志关键词过滤统计
  3. 多线程并发执行任务
  4. 装饰器:给ssh函数加重试、计时
  5. 生成器分批读取大文件

7. 项目实战问答(简历重点)

  1. 你用Python做过什么自动化工具/AIOps平台?
  2. 批量管理多台服务器时,如何解决并发、超时、异常重连?
  3. 代码遇到过什么性能瓶颈?怎么优化内存/速度?
  4. 如何处理脚本日志、异常捕获、告警输出?
  5. paramiko 踩过什么坑(401、上下文超长、交互式输入密码)?

8. 高频面试真题(直接背)

  1. 列表和元组区别,各自适用场景
  2. GIL锁的作用、优缺点、怎么规避
  3. 装饰器实现原理,手写一个计算函数运行时间的装饰器
  4. 迭代器和生成器区别,为什么生成器省内存
  5. 多线程和多进程区别,什么场景用哪个
  6. exec_commandinvoke_shell 有什么差异
  7. is==有什么不同
  8. 默认参数列表陷阱是什么,如何避免
  9. 垃圾回收机制,循环引用怎么处理
  10. with语句底层原理,自定义上下文管理器

9. 区分岗位难度

  1. 初级运维Python:基础语法、文件、subprocess、paramiko、简单循环并发
  2. 中级SRE/平台开发:装饰器、并发、OOP、数据库、性能优化、批量运维框架
  3. AI算法/训练岗:numpy、torch、自动微分、张量、数据处理、基础算法
  4. 后端开发:web框架、接口、数据库、高并发、缓存、安全

关联文档

Yanche Blog

记录云原生、Linux、数据库等技术领域的学习心得,以及日常生活的思考与感悟。

© 2026 Yanche Blog. All rights reserved.

Powered by Astro