Python常见面试题
1. Python有哪些内置数据类型常见的有int,float,bool,str,list,tuple,dict,set。2. Python中列表和元组的区别列表list可变可增删改元组tuple不可变定义后不能修改。3. Python的深拷贝和浅拷贝有什么区别浅拷贝复制对象的引用改变子对象会影响原对象。深拷贝复制对象及其所有子对象完全独立。浅拷贝shallow copyimport copy original [1, 2, [3, 4]] shallow_copied copy.copy(original) print(原始列表:, original) print(浅拷贝列表:, shallow_copied) # 修改浅拷贝内嵌列表 shallow_copied[2].append(5) print(\n修改浅拷贝后的原始列表:, original) print(修改浅拷贝后的浅拷贝列表:, shallow_copied)输出原始列表: [1, 2, [3, 4]] 浅拷贝列表: [1, 2, [3, 4]] 修改浅拷贝后的原始列表: [1, 2, [3, 4, 5]] 修改浅拷贝后的浅拷贝列表: [1, 2, [3, 4, 5]]可以看到修改了浅拷贝的内嵌列表原始列表也会改变因为它们共享内嵌列表对象。深拷贝deep copyimport copy original [1, 2, [3, 4]] deep_copied copy.deepcopy(original) print(原始列表:, original) print(深拷贝列表:, deep_copied) # 修改深拷贝内嵌列表 deep_copied[2].append(5) print(\n修改深拷贝后的原始列表:, original) print(修改深拷贝后的深拷贝列表:, deep_copied)输出原始列表: [1, 2, [3, 4]] 深拷贝列表: [1, 2, [3, 4]] 修改深拷贝后的原始列表: [1, 2, [3, 4]] 修改深拷贝后的深拷贝列表: [1, 2, [3, 4, 5]]这里修改深拷贝对象里的内嵌列表原始列表保持不变。探究浅拷贝和对象赋值我们常见的代码赋值写法b [1, 2, 3] a b这是让变量a和b指向同一个列表对象a和b引用的是内存中同一个列表通过a修改列表内容b也会看到变化反之亦然。这种效果类似于浅拷贝但实际意义不同。ab是指向同一个对象也就是指向的内存地址是完全一样的但浅拷贝a、b就分别指向不同的列表对象那这就有个疑问了浅拷贝会改变原始列表的值有啥用处啊为啥不干脆直接修改原始列表这是个很好的问题浅拷贝看起来修改了拷贝里的可变子对象会影响原始对象似乎没啥用——但它其实有几个实际场景和意义1.避免改变顶层对象但允许共享子对象浅拷贝创建了新的顶层容器比如新的列表对象这样你在拷贝的容器上添加、删除、替换元素不会影响原始容器但子对象仍共享节省了内存。import copy original [[1, 2], [3, 4]] shallow copy.copy(original) # 改变顶层结构 shallow.append([5, 6]) print(original) # 原始列表不变 # 改变子对象内容 shallow[0].append(99) print(original) # 子对象被修改原始列表看到变化这样做的用处在于比如你想临时拓展原始列表而不影响它结构但又想共享子数据避免内存消耗。或者顶层改变独立子对象共享方便节省资源。2.性能和内存考虑深拷贝会递归复制所有子对象时间和空间开销大。浅拷贝只复制最外层对象速度快适合不需要递归复制的情况。3.某些场景必须共享子对象有时候子对象本身就是“不可分割的状态”希望在多个结构中共享更新比如共享缓存、配置、连接池等。4.区别“修改结构”和“修改内容”修改结构如添加、删除元素在浅拷贝副本是独立的不影响原始列表。修改内容如修改子列表里的元素共享会影响原始。这提供了更灵活的设计空间可以根据需求控制修改的影响范围。4. 什么是Python的GIL全局解释器锁GIL使得同一时刻只有一个线程在执行Python字节码限制多线程并发影响CPU密集型任务。5. Python装饰器是什么怎么使用装饰器是用于修改函数或类行为的高阶函数通常使用decorator语法调用。6. 列表推导式写法示例squares [x**2 for x in range(10)]它的含义是对range(10)里的每个x计算x的平方生成一个列表。range(10)生成[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]把每个元素平方所以squares的结果是[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]7. Python如何实现多线程和多进程多线程用threading模块多进程用multiprocessing模块。8. Python中如何管理内存Python采用引用计数和垃圾回收GC机制管理内存。9. 什么是迭代器和生成器迭代器是实现了__iter__和__next__方法的对象生成器用yield生成迭代器支持惰性求值。迭代器示例class MyIterator: def __init__(self, data): self.data data self.index 0 def __iter__(self): return self # 迭代器返回自己 def __next__(self): if self.index len(self.data): val self.data[self.index] self.index 1 return val else: raise StopIteration # 到尾部时抛出异常 # 使用迭代器 iter_obj MyIterator([10, 20, 30]) for num in iter_obj: print(num)生成器示例用yielddef my_generator(): yield 10 yield 20 yield 30 # 使用生成器 for num in my_generator(): print(num)特点迭代器生成器定义通过类实现定义__iter__和__next__通过函数和yield语句使用复杂度相对复杂需要手写类和方法简洁写函数即可内存效率少量数据时无需特殊考虑生成时才计算更省内存适用场景自定义复杂数据结构的遍历惰性生成数据简化迭代实现10. 类和实例之间的区别类是对象模板定义属性和方法实例是类的具体对象有独立状态。11. Python中*args和**kwargs的作用*args传递可变数量的位置参数**kwargs传递可变数量的关键字参数。示例def func(*args): print(args , args) for i, val in enumerate(args): print(farg {i}: {val}) func(1, 2, 3)def func(**kwargs): print(kwargs , kwargs) for key, val in kwargs.items(): print(f{key} {val}) func(a1, b2, c3)12. Python中如何捕获异常python 复制 try: x int(input(请输入一个整数: )) result 10 / x except ValueError: print(捕获 ValueError输入的不是有效整数) except ZeroDivisionError: print(捕获 ZeroDivisionError除数不能为零) except Exception as e: print(捕获其他异常:, e) else: print(计算结果是:, result)except ValueError:处理转换整数失败的异常except ZeroDivisionError:处理除以零异常except Exception as e:处理其他未捕获的异常可选else:当没有异常发生时执行finally:如果需要无论有没有异常都会执行的代码可以写在这里13. Python字典的底层实现字典采用哈希表实现键必须是可哈希不可变类型。14. 怎么判断一个对象是否是某个类的实例isinstance(obj, ClassName)15. Python的with语句作用用于简化资源管理实现上下文管理器协议自动释放资源。class MyContext: def __enter__(self): print(进入上下文) return 资源 def __exit__(self, exc_type, exc_value, traceback): print(离开上下文) with MyContext() as resource: print(f使用{resource})输出 进入上下文 使用资源 离开上下文16. Python中的多继承是什么有什么问题一个类继承多个父类可能引起方法解析顺序MRO混乱需注意调用顺序。什么是 MRO 混乱当多个父类存在重叠继承关系或者继承结构复杂时Python 需要根据一定规则合并各个类的方法查找顺序。如果继承关系设计不当Python 可能无法推导出一个满足所有父类继承约束的线性顺序会报错TypeError: Cannot create a consistent method resolution order (MRO)。这就是所谓的 MRO 混乱。代码示例展示 MRO 混乱导致的错误class A: pass class B(A): pass class C(A): pass # 下面这个类继承顺序冲突会报错 class D(B, C): pass class E(C, B): pass class F(D, E): # 这里继承冲突MRO 无法解析会报错 pass一个正常的多继承 MRO 示例class X: def greet(self): print(Hello from X) class Y(X): def greet(self): print(Hello from Y) class Z(X): def greet(self): print(Hello from Z) class M(Y, Z): pass obj M() obj.greet() print(M.mro())输出Hello from Y [class __main__.M, class __main__.Y, class __main__.Z, class __main__.X, class object]多继承时Python 用 C3 算法计算 MRO。如果继承链设计巧妙、顺序合理MRO 是清晰且唯一的。如果父类继承顺序冲突就会报 MRO 混乱错误。设计多继承时尽量避免复杂的菱形继承和顺序不一致。17. Python中lambda表达式如何使用匿名函数语法lambda 参数: 表达式适合小函数。square lambda x: x ** 2 print(square(5)) # 输出 25 nums [1, 2, 3, 4, 5, 6] evens list(filter(lambda x: x % 2 0, nums)) print(evens) # 输出 [2, 4, 6]18. Python中如何读取和写入文件# 读取整个文件内容 with open(example.txt, r, encodingutf-8) as f: content f.read() print(content) with open(example.txt, r, encodingutf-8) as f: for line in f: print(line.strip()) # strip去掉行尾换行符 with open(output.txt, w, encodingutf-8) as f: f.write(这是写入文件的内容。\n) f.write(支持中文字符。\n) with open(output.txt, a, encodingutf-8) as f: f.write(追加一行内容。\n)19. Python支持哪些内置数据结构列表list、元组tuple、字典dict、集合set。20. Python中常见的标准库有哪些os,sys,re,json,datetime,collections,itertools,threading等。

相关新闻

OpenClaw AI智能体框架:从核心架构到实战部署全解析

OpenClaw AI智能体框架:从核心架构到实战部署全解析

1. 项目概述:从“小龙虾”到AI智能体框架最近在AI智能体这个圈子里,一个代号“小龙虾”的项目——OpenClaw,热度突然就上来了。如果你关注GitHub趋势或者一些AI开发者的社群,大概率会看到有人在讨论怎么部署它、怎么接入飞书微信&…

2026/8/25 10:31:21 阅读更多 →
Llama 4前瞻:开源大模型的架构革新、生态挑战与行业格局重塑

Llama 4前瞻:开源大模型的架构革新、生态挑战与行业格局重塑

1. Llama 4:开源AI的十字路口最近,Meta的Llama系列模型又一次成了圈子里的焦点话题。虽然Llama 4还没正式发布,但关于它的各种猜测和分析已经满天飞了。从Llama 1的横空出世,到Llama 2的全面开源,再到Llama 3在性能上对…

2026/8/25 10:30:19 阅读更多 →
Linux安装MinIO并配置SSL证书(HTTPS访问)

Linux安装MinIO并配置SSL证书(HTTPS访问)

创建MinIO的自定义的配置文件和数据目录 我们这里将使用以下目录结构: bin目录:/mnt/data/minio/bin 数据目录:/mnt/data/minio/data 配置目录:/mnt/data/minio/config 证书目录:/mnt/data/minio/certs下载指定版本预编…

2026/8/25 10:30:19 阅读更多 →

最新新闻

LLM智能体在游戏中的竞争与合作:架构、策略与工程实践

LLM智能体在游戏中的竞争与合作:架构、策略与工程实践

1. 从“单打独斗”到“群雄逐鹿”:LLM智能体在游戏中的范式转变最近和几个做游戏AI的朋友聊天,大家不约而同地都在讨论一个话题:当大语言模型驱动的智能体不再是一个孤立的NPC,而是能成群结队、彼此互动时,游戏世界会发…

2026/8/25 11:16:12 阅读更多 →
Keil MDK AC6编译器下bin/hex文件生成失败问题深度解析与解决方案

Keil MDK AC6编译器下bin/hex文件生成失败问题深度解析与解决方案

1. 问题现象与背景解析如果你最近将Keil MDK的编译器从默认的AC5(ARM Compiler 5)切换到了AC6(ARM Compiler 6),并且在项目设置里明明勾选了“Create HEX File”或“Create Binary File”,但编译后却找不到…

2026/8/25 11:16:12 阅读更多 →
MathType安装全攻略:从原理到实战,解决Word/WPS公式编辑器集成难题

MathType安装全攻略:从原理到实战,解决Word/WPS公式编辑器集成难题

1. 项目概述:为什么MathType的安装总让人头疼?如果你是一名理工科学生、科研工作者,或者经常需要撰写包含复杂公式的技术文档,那么MathType这款公式编辑器的大名你一定听过。它几乎是Word和WPS中编辑数学公式的“黄金搭档”。然而…

2026/8/25 11:16:12 阅读更多 →
【信息科学与工程学】信息科学领域——第一百三十一篇 模拟电路/数字IC 02

【信息科学与工程学】信息科学领域——第一百三十一篇 模拟电路/数字IC 02

。 编号 类型 领域 问题 多层级分析(纯数学→数学物理耦合→界面&表面科学耦合) 算法逐步推理的数学表达式/实现步骤/时序流程 关联知识 465 数字波束成形(Beamforming)相控阵 数字IC通信 阵元数64,频率2.4GHz,波束指向精度0.1,旁瓣抑制≥30dB 1. 纯数学…

2026/8/25 11:16:12 阅读更多 →
无人机高清巡检数据集汇总 桥梁巡检 农业巡检 铁路障碍物数据集 AI图像数据集汇总

无人机高清巡检数据集汇总 桥梁巡检 农业巡检 铁路障碍物数据集 AI图像数据集汇总

此低空无人巡检专栏数据汇总了 : 点击直达👇 无人机数据汇总 各行各业300细分场景数据集明细(全行业具象化场景扩充) 本数据集累计涵盖300个全行业细分落地场景,深度覆盖国民经济核心生产、建设、运维、服务领域&am…

2026/8/25 11:16:12 阅读更多 →
UVa 10632 Pyramid

UVa 10632 Pyramid

题目描述 在一个经典的电脑游戏中,一个生物在金字塔形状的格子上跳跃。金字塔共有 nnn 行,第 iii 行有 iii 个格子。生物每次只能跳到其正上方或正下方的相邻格子,不能跳出金字塔。当生物落在一个格子上时,该格子的颜色会按照 红色…

2026/8/25 11:15:11 阅读更多 →

日新闻

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/25 0:00:34 阅读更多 →
Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

2026/8/25 0:00:34 阅读更多 →
数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

1. 项目概述:从“会做”到“会写”的竞赛核心跃迁“全国大学生数学建模竞赛”,这个名字对理工科学生来说,分量极重。每年,无数团队在三天三夜的时间里,为一个开放性问题绞尽脑汁,从建立模型、求解算法到编程…

2026/8/25 0:00:34 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 3:38:12 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 3:38:18 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 3:38:23 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/24 20:22:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/25 10:31:12 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →