一份Python 面试常见问题清单 覆盖从初级到高级

下面按面试出现频率 + 实战价值 ,给你一份Python 面试常见问题清单 ,覆盖从初级到高级(默认偏web 后端方向)。


一、Python 基础(必考 ⭐⭐⭐⭐⭐)

1️⃣ Python 是解释型还是编译型?

  • 解释型语言

  • 但实际上:

    👉 .py → 字节码(.pyc) → Python 虚拟机执行


2️⃣ 深拷贝 vs 浅拷贝

import copy copy.copy() # 浅拷贝 copy.deepcopy() # 深拷贝

  • 浅拷贝:只复制第一层引用

  • 深拷贝:递归复制所有对象


3️⃣ 可变 / 不可变类型

不可变:

  • int, float, str, tuple, frozenset

可变:

  • list, dict, set

👉 面试重点:作为 dict key 的必须是不可变类型


4️⃣ is 和 == 的区别

  • ==:值是否相等

  • is:是否指向同一内存地址


5️⃣ None / False / 0 的区别

复制代码
None == False     # False
None is False     # False
bool(None)        # False

二、函数 & 语法特性(高频 ⭐⭐⭐⭐)

6️⃣ *args 和 **kwargs

复制代码
def f(*args, **kwargs):
    pass

7️⃣ lambda 的使用场景

  • 简单函数

  • sorted / map / filter

    sorted(data, key=lambda x: x['age'])


8️⃣ 装饰器(必考

复制代码
def decorator(func):
    def wrapper(*args, **kwargs):
        return func(*args, **kwargs)
    return wrapper

追问:

  • 多个装饰器执行顺序?

  • 装饰器带参数怎么写?


9️⃣ 生成器 vs 列表

(x for x in range(10))

  • 节省内存

  • 惰性计算

  • 用于大数据、日志流


三、面向对象(中高级 ⭐⭐⭐⭐)

🔟 类变量 vs 实例变量

复制代码
class A:
    x = 1        # 类变量
    def __init__(self):
        self.y = 2

1️⃣1️⃣ @staticmethod / @classmethod

  • staticmethod:无 self / cls

  • classmethod:可访问类变量


1️⃣2️⃣ 魔法方法(常问)

  • __init__

  • __new__

  • __str__

  • __repr__

  • __len__

  • __call__


四、内存 & 性能(高级 ⭐⭐⭐⭐)

1️⃣3️⃣ Python 的垃圾回收机制

  • 引用计数

  • 分代回收

  • 解决循环引用


1️⃣4️⃣ GIL 是什么?

  • 全局解释器锁

  • 多线程无法真正并行执行 CPU 密集型任务

  • IO 密集型依然适合多线程


1️⃣5️⃣ 多进程 vs 多线程

类型 场景
多线程 IO 密集
多进程 CPU 密集

五、并发 / 异步(越来越常考 ⭐⭐⭐⭐)

1️⃣6️⃣ asyncio 工作原理

  • 事件循环

  • 协程(async / await

    async def f():
    await asyncio.sleep(1)


1️⃣7️⃣ 协程 vs 线程

  • 协程:用户态切换,轻量

  • 线程:内核态切换,重


六、常见内置结构 & 原理(高频 ⭐⭐⭐⭐)

1️⃣8️⃣ dict 底层原理

  • 哈希表

  • 开放寻址

  • O(1) 查找(平均)


1️⃣9️⃣ list 底层原理

  • 动态数组

  • 预分配空间


七、异常 & 上下文(必会 ⭐⭐⭐)

2️⃣0️⃣ try / except / finally

复制代码
try:
    ...
except Exception as e:
    ...
finally:
    ...

2️⃣1️⃣ with 的原理

  • 上下文管理器

  • __enter__ / __exit__


八、标准库 & 实战(加分 ⭐⭐⭐)

2️⃣2️⃣ 常用标准库

  • os / sys

  • datetime

  • re

  • json

  • collections

  • itertools


2️⃣3️⃣ collections 常考

  • Counter

  • defaultdict

  • deque

  • namedtuple


九、框架方向(后端必问 ⭐⭐⭐⭐)

Django / FastAPI 常被追问

  • ORM 查询是否懒加载?

  • 中间件执行顺序

  • Django QuerySet 是否立即执行?

  • FastAPI 为什么快?(ASGI + async)


十、算法 & 逻辑(一定会考 ⭐⭐⭐⭐)

  • 字符串去重

  • LRU 缓存

  • 两数之和

  • 反转链表

  • 排序算法时间复杂度


面试官最爱追问总结

❗ 知道 "是什么" 不够

❗ 一定要会 "为什么 + 场景 + 对比"

相关推荐
铁蛋AI编程实战13 分钟前
ChatWiki 开源 AI 文档助手搭建教程:多格式文档接入,打造专属知识库机器人
java·人工智能·python·开源
程序员小远14 分钟前
UI自动化测试用例管理平台搭建
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
2301_7634725815 分钟前
实时系统下的C++编程
开发语言·c++·算法
小明_GLC18 分钟前
Docker 构建镜像一直卡在下载 Python?
python·docker·容器
阿猿收手吧!23 分钟前
【C++】深入理解C++ Atomic内存序:解决什么问题?怎么用?
开发语言·c++
小白学大数据27 分钟前
Python爬虫实现无限滚动页面的自动点击与内容抓取
开发语言·爬虫·python·pandas
Andy Dennis27 分钟前
一文漫谈设计模式之创建型模式(一)
java·开发语言·设计模式
hnxaoli27 分钟前
通信小程序(九)快捷键自动改名
linux·python·小程序
兩尛28 分钟前
c++遍历容器(vector、list、set、map
开发语言·c++
£漫步 云端彡30 分钟前
Golang学习历程【第十三篇 并发入门:goroutine + channel 基础】
开发语言·学习·golang