一份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 缓存

  • 两数之和

  • 反转链表

  • 排序算法时间复杂度


面试官最爱追问总结

❗ 知道 "是什么" 不够

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

相关推荐
ss2732 小时前
Java线程池全解:工作原理、参数调优
java·linux·python
麦麦鸡腿堡2 小时前
Java_MySQL介绍
java·开发语言·mysql
shoubepatien2 小时前
JavaWeb_Web基础
java·开发语言·前端·数据库·intellij-idea
BoBoZz192 小时前
RotationAroundLine 模型的旋转
python·vtk·图形渲染·图形处理
Kurbaneli2 小时前
Python金融数据分析革命:Mootdx让通达信数据获取变得如此简单
python
吧啦蹦吧2 小时前
`org.springframework.util.ClassUtils#forName
开发语言·python
CC.GG2 小时前
【C++】红黑树
java·开发语言·c++
倔强的小石头_2 小时前
Python 从入门到实战(十):Pandas 数据处理(高效搞定表格数据的 “瑞士军刀”)
人工智能·python·pandas
学IT的周星星2 小时前
java常见面试题
java·开发语言