Python面试题(一):5个最常见的Python基础问题
在准备 Python 相关的面试时有些问题几乎是必会问的题。这些问题虽然基础但如果回答的不清楚很容易给面试官留下基础不扎实的印象。这篇文章整理了5 道 Python 面试中最常见的基础题并结合简单的示例进行解释帮助大家不仅能够回答问题还能真正的理解背后的原理。当然这也仅仅是我个人在准备面试过程中整理出来的题目如果大家有不同意见欢迎提出一、Python 的主要特点是什么简答版Python 是一种解释型、动态类型的高级编程语言语法简洁、可读性强并且拥有丰富的标准库和第三方库因此开发效率非常高被广泛应用于Web开发、数据分析、人工智能、自动化运维等领域。简答版2更精简一些Python 是一种解释型、动态类型的语言语法简单拥有非常丰富的第三方库因此开发效率比较高。详细解析Python 之所以流行很大程度上来源于它的几个核心特点。1 解释型语言Python 是解释型语言代码不需要编译成机器码再执行而是由解释器逐行执行。例如print(Hello Python)运行时Python解释器会直接解释并执行这行代码。优点开发效率高调试方便跨平台能力强缺点运行速度通常比编译型语言如C、C慢一些2 动态类型语言Python 是动态类型语言变量在运行时才确定类型。例如x 10 # int x hello # str同一个变量可以在不同时间指向不同类型的数据。优点编码更加灵活不需要声明变量类型缺点容易产生类型错误大型项目需要良好的代码规范3 语法简单可读性强Python 的设计哲学之一是代码应该像自然语言一样容易理解例如对比 Python 和 Javafor i in range(5): print(i)for(int i0;i5;i){ System.out.println(i); }可以明显看出 Python 更简洁。4 丰富的标准库和第三方库Python 生态非常强大例如常见库数据分析pandas科学计算numpy机器学习scikit-learn深度学习tensorflow、pytorch爬虫requests、scrapyWeb开发django、flask因此 Python 也被称为“胶水语言Glue Language”因为它可以把各种系统快速连接起来。二、Python 列表List和元组Tuple的区别这是 Python 面试中非常高频的问题。简答版Python 中类型是否可变List可变Tuple不可变列表可以修改元素而元组创建后不能修改。详细解析1 List列表列表是可变序列。a [1, 2, 3] a[0] 100 print(a) #输出 [100, 2, 3]列表支持很多操作增加删除修改排序2 Tuple元组元组是不可变序列。t (1, 2, 3) t[0] 100 # 运行报错 TypeError: tuple object does not support item assignment因为元组创建后元素不能被修改。为什么需要 Tuple很多人刚学 Python 时会问既然 list 可以用为什么还要 tuple主要原因有三个。1 、Tuple 更安全不可变意味着数据不会被意外修改例如config (127.0.0.1, 3306)2 、Tuple 速度更快因为 tuple 不可变所以 Python 可以进行一些优化。一般来说tuple 的访问速度会略快于 list3 、Tuple 可以作为字典 keyPython 字典要求key 必须是可哈希hashable的。list 不行d {[1,2]: hello} # 报错tuple 可以d {(1,2): hello} # 可行三、Python 深拷贝和浅拷贝在 Python 中变量本质上是对象的引用。因此复制对象时需要区分浅拷贝深拷贝简答版浅拷贝只复制对象本身但内部对象仍然共享引用。深拷贝递归复制整个对象结构。浅拷贝示例import copy a [[1,2], [3,4]] b copy.copy(a) b[0][0] 100 print(a) # 输出 # [[100, 2], [3, 4]]原因外层列表被复制内层列表仍然共享引用深拷贝示例import copy a [[1,2], [3,4]] b copy.deepcopy(a) b[0][0] 100 print(a) # 输出 # [[1, 2], [3, 4]]深拷贝会完全复制所有层级的数据结构。总结对比类型复制对象复制子对象浅拷贝✔✖深拷贝✔✔四、Python 的 GIL 是什么这是 Python 面试中非常经典的问题。简答版GILGlobal Interpreter Lock是Python 的全局解释器锁。它保证在同一时刻只有一个线程执行 Python 字节码。为什么需要 GILPython 使用引用计数机制进行内存管理。例如a [] b a对象的引用计数会增加。如果多个线程同时修改引用计数就可能产生数据竞争、内存错误因此 Python 通过 GIL 保证线程安全。GIL 的影响GIL 会影响多线程的并行能力。CPU密集型任务例如大量计算、数学运算多线程无法利用多核 CPU。解决方案使用多进程 multiprocessing。IO密集型任务例如网络请求、文件读写线程在等待 IO 时会释放 GIL因此多线程仍然有效常见场景爬虫、Web服务器五、Python 字典为什么这么快Python 字典是使用频率非常高的数据结构。简答版Python 字典底层使用哈希表Hash Table实现。通过 key 的 hash 值直接定位存储位置因此查找复杂度接近O(1)。字典查找过程当执行d[name]大致步骤是1 计算 key 的 hash 值2 根据 hash 值计算数组索引3 找到对应位置的数据因此查找非常快。示例d { name: Alice, age: 20 } print(d[name])时间复杂度O(1)哈希冲突如果两个 key 的 hash 值相同就会发生哈希冲突。Python 会通过开放寻址法Open Addressing来寻找新的位置。面试延伸知识Python 字典还有几个重要特点1 、Python3.7 之后字典有序例如d {a:1, b:2, c:3}遍历顺序就是a b c2 、字典扩容机制当哈希表使用率过高时Python 会自动扩容重新计算索引以保证查找效率。

相关新闻

Nanbeige4精读

Nanbeige4精读

Nanbeige4-3B 来自于https://arxiv.org/pdf/2512.06266,这篇文章数据方面做的是非常扎实的,混合数据过滤技术构建23T高质量语料。遗憾的是只公开了weights,并没有公开code。具体来说有下面几个技术 PreTrain阶段 Hybrid Data Filtering Multi…

2026/7/4 20:26:53 阅读更多 →
LightTools照明设计进阶:从仿真文件到优化引擎的实战解析

LightTools照明设计进阶:从仿真文件到优化引擎的实战解析

1. 从“会建模”到“会设计”:进阶之路的关键一跃 很多朋友在用LightTools做照明设计时,可能会陷入一个误区:以为把模型建出来,光线能跑通,就算完成任务了。这其实只是“会建模”,离“会设计”还差得远。我…

2026/7/3 23:02:59 阅读更多 →
微信小程序中优雅渲染LaTeX公式:基于KaTeX与rich-text的实战指南

微信小程序中优雅渲染LaTeX公式:基于KaTeX与rich-text的实战指南

1. 为什么要在小程序里折腾LaTeX? 做教育类、知识分享类或者技术文档类小程序的开发者,估计都遇到过这个头疼的问题:用户上传或者系统需要展示一段复杂的数学公式、物理公式或者化学方程式。你可能会想,这还不简单?直接…

2026/7/4 20:06:37 阅读更多 →

最新新闻

微信好友关系检测神器:一键找出偷偷删掉或拉黑你的人 [特殊字符]

微信好友关系检测神器:一键找出偷偷删掉或拉黑你的人 [特殊字符]

微信好友关系检测神器:一键找出偷偷删掉或拉黑你的人 😱 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRe…

2026/7/5 5:51:45 阅读更多 →
Git 功能发展历史

Git 功能发展历史

目录 Git 的诞生与设计哲学2005—2008:从原型到 1.0 的奠基期Git 1.5—1.9:基础功能完善期Git 2.0:里程碑式的行为变更Git 2.1—2.22:渐进式改进与体验优化Git 2.23:switch 与 restore 的引入Git 2.24—2.29&#xff…

2026/7/5 5:49:45 阅读更多 →
终极解决方案:KMS智能激活脚本完整指南 - 彻底告别Windows和Office激活烦恼

终极解决方案:KMS智能激活脚本完整指南 - 彻底告别Windows和Office激活烦恼

终极解决方案:KMS智能激活脚本完整指南 - 彻底告别Windows和Office激活烦恼 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗?…

2026/7/5 5:47:45 阅读更多 →
受够了记账 App 的广告和会员,我自己写了一个:完全免费、数据 100% 在本地、开源

受够了记账 App 的广告和会员,我自己写了一个:完全免费、数据 100% 在本地、开源

受够了记账 App 的广告和会员,我自己写了一个:完全免费、数据 100% 在本地、开源 先说结论:这是一个没有广告、没有会员、没有内购、不需要注册、不联网上传任何数据的记账 App。代码开源在 GitHub,Android 安装包直接从 Release…

2026/7/5 5:45:44 阅读更多 →
PyInstaller 打包 exe 图标不显示问题(AI生成)

PyInstaller 打包 exe 图标不显示问题(AI生成)

# PyInstaller 打包 exe 图标不显示?这篇文章帮你彻底解决!## 🔍 问题背景最近在用 PyInstaller 打包一个 PySide6 项目时,遇到了一个非常头疼的问题:**设置了图标但 exe 文件始终不显示**。经过一番折腾,终…

2026/7/5 5:45:44 阅读更多 →
知网查重太贵?2026年免费论文查重渠道汇总+PaperRed隐藏功能曝光

知网查重太贵?2026年免费论文查重渠道汇总+PaperRed隐藏功能曝光

2026年毕业季,知网查重一次要多少钱?答案是:本科论文约100-200元,硕博论文200-400元。而且很多学校只给1-2次免费查重机会,用完之后就得自费。对于预算有限的学生来说,这笔开销不算小。更让人头疼的是&…

2026/7/5 5:43:44 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻