版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
初级Python面试题及详细答案(真实企业版)说明:本套题目适配0-1年经验Python初级开发、实习生岗位,全部为企业高频面试原题,内容贴合实际工作,无空洞理论,答案通俗易懂、贴合面试官打分标准。一、Python基础语法(高频必问)1、简述Python中可变数据类型和不可变数据类型,并举例说明答案:核心区别:数据在内存中是否可以直接修改,修改后内存地址是否发生变化。1、不可变数据类型:变量赋值后,数据无法直接修改,一旦修改会生成新的内存地址和新数据。包含:字符串(str)、整数(int)、浮点数(float)、元组(tuple)、布尔值(bool)举例:修改字符串内容会报错,只能重新赋值PlainText
s="test"
#s[0]="a"#报错,字符串不可修改
s="atest"#重新赋值,生成新数据2、可变数据类型:数据可以直接在原内存地址上修改,修改后变量内存地址不变。包含:列表(list)、字典(dict)、集合(set)举例:列表直接增删改,地址不变PlainText
lst=[1,2,3]
lst.append(4)
print(lst)#[1,2,3,4]原地修改,无新内存生成2、说说==和is的区别答案:1、==是数值比较:只判断两个变量的值是否相等,不关注内存地址2、is是身份比较:判断两个变量是否指向同一个内存地址(完全同一个对象)补充:Python有小整数缓存机制,-5~256之间的整数会被常驻内存缓存,这个区间内的整数变量,值相等则is也成立;超出范围则不成立。PlainText
a=10
b=10
print(a==b)#True值相等
print(aisb)#True缓存范围内,地址相同
c=300
d=300
print(c==d)#True
print(cisd)#False超出缓存范围,不同内存地址3、Python中元组(tuple)是不可变的,为什么里面可以放列表且可以修改列表内容?答案:元组的不可变,指的是元组内部元素的内存地址不可变,而不是元素本身的内容不可变。如果元组内存储的是可变类型(列表、字典),元组锁定的是这个列表的内存地址,只要不替换这个列表对象,仅修改列表内部数据,元组本身就没有发生改变。PlainText
t=(1,2,[3,4])
t[2].append(5)
print(t)#(1,2,[3,4,5])可以修改
#t[2]=[6,7]#报错,不能替换元组内的元素地址4、解释Python中的注释方式,以及多行注释的原理答案:1、单行注释:使用#号,从#开始到该行末尾所有内容都会被解释器忽略,日常代码标注说明使用最多。2、多行注释:使用三个单引号''''''或三个双引号""""""原理:多行注释本质是字符串常量,没有变量接收、不参与程序逻辑执行,解释器读取后直接丢弃,从而实现注释效果,并非官方定义的注释语法,是行业通用写法。二、流程控制与循环(基础实操)1、break、continue、pass的区别答案:1、break:直接终止当前所在的整个循环,跳出循环体,后续循环不再执行2、continue:终止本次循环,直接进入下一次循环,不会跳出整体循环3、pass:空语句,无任何执行逻辑,仅作为占位符,保证代码结构完整,避免语法报错,常用在未写完的函数、判断语句中。2、for循环和while循环的适用场景答案:1、for循环:适合已知循环次数、遍历可迭代对象的场景,比如遍历列表、字符串、字典、固定次数循环。2、while循环:适合未知循环次数,依靠条件判断控制循环的场景,只要条件为True就持续循环,比如死循环、用户输入校验、条件等待。三、列表、字典、字符串高频考点1、列表append()和extend()的区别答案:1、append():整体追加,将传入的参数作为一个整体元素添加到列表末尾2、extend():迭代追加,将传入的可迭代对象(列表、字符串等)拆解为单个元素逐个添加PlainText
lst=[1,2]
lst.append([3,4])
print(lst)#[1,2,[3,4]]新增1个元素
lst2=[1,2]
lst2.extend([3,4])
print(lst2)#[1,2,3,4]新增2个元素2、Python字典的key有什么要求?为什么列表不能作为key?答案:1、字典key的要求:必须是不可变数据类型(int、str、tuple、bool),且key唯一、不可重复。2、列表不能做key的原因:字典底层是哈希表,存储数据需要通过key的哈希值确定存储位置。列表是可变类型,内容可以随时修改,哈希值会发生变化,会导致字典数据查找混乱、无法定位数据,因此不允许作为key。3、如何实现字符串反转?写出最简代码答案:Python最简方式为切片反转,效率最高、代码最简洁,工作中优先使用:PlainText
s="python"
res=s[::-1]
print(res)#nohtyp四、函数与参数1、形参和实参的区别答案:1、形参:定义函数时,括号内声明的参数,只起占位作用,无实际数值,仅定义参数类型和数量。2、实参:调用函数时,传入的具体数据、变量,有真实数值,用于给形参赋值,参与函数逻辑执行。PlainText
#a、b是形参
defadd(a,b):
returna+b
#1、2是实参
print(add(1,2))2、*args和**kwargs的作用和区别答案:两者都是不定长参数,用于解决函数参数数量不固定的问题,适配通用函数封装。1、*args:接收不定长位置参数,最终打包成元组(tuple),可以接收任意多个普通参数。2、**kwargs:接收不定长关键字参数,最终打包成字典(dict),可以接收任意多个key=value格式参数。PlainText
deffunc(*args,**kwargs):
print(args)#(1,2,3)
print(kwargs)#{'name':'test','age':20}
func(1,2,3,name="test",age=20)补充:参数顺序规范:位置参数>*args>关键字参数>**kwargs3、局部变量和全局变量的区别,global关键字的作用答案:1、全局变量:定义在函数外部,整个文件内所有函数都可以访问,生命周期贯穿整个程序运行过程。2、局部变量:定义在函数内部,仅当前函数内可以使用,函数执行结束后自动销毁,无法外部调用。3、global关键字:用于在函数内部修改全局变量。如果不使用global,函数内部会默认创建一个同名局部变量,不会修改外部全局变量。PlainText
num=10
defchange():
globalnum
num=20
change()
print(num)#20全局变量被修改五、异常处理1、说说Pythontry-except异常处理机制,以及各模块作用答案:异常处理用于捕获程序运行中的错误,避免程序直接崩溃退出,提升代码容错性。完整结构包含4个部分:1、try:包裹需要检测异常的代码,正常执行无报错则跳过except2、except:捕获对应类型的异常,报错后执行此处逻辑,可单独捕获指定异常或捕获所有异常3、else:try代码无异常时执行,有异常则不执行4、finally:无论try是否报错,一定会执行,常用于关闭文件、释放资源等收尾操作PlainText
try:
a=1/0
exceptZeroDivisionError:
print("除数不能为0")
else:
print("执行成功")
finally:
print("程序执行结束")六、实操简答题(面试口述高频)1、Python中列表、元组、字典、集合各自的优缺点和使用场景答案:列表list:有序、可重复、可修改;优点是灵活、支持增删改查所有操作;缺点是查询速度慢;适合存储有序、可变动的一组数据。元组tuple:有序、可重复、不可修改;优点是安全、占用内存小、可作为字典key;缺点是无法修改数据;适合存储固定不变的数据(配置参数、坐标等)。字典dict:无序(3.7+有序)、key唯一、可修改;优点是键值对取值速度极快;缺点是占用内存大;适合存储一一对应的关联数据(用户信息、键值配置)。集合set:无序、元素唯一、可修改;优点是自动去重、支持交集并集运算;缺点是无法存储重复数据、不支持索引取值;适合数据去重、数据比对、集合运算。2、Python为什么运行速度比C语言慢?答案:1、Python是解释型语言,运行时逐行解释翻译代码,边翻译边执行;C语言是编译型语言,提前一次性编译成机器码,运行时直接执行,效率更高。2、Python是动态类型语言,运行时才确定变量类型,需要频繁检测类型、分配内存;C语言静态类型,编译时确定类型,无需额外检测。3、Python自带垃圾回收机制、内存自动管理,额外占用运行资源;C语言手动管理内存,资源消耗更低。3、如何对列表进行去重,保留原有顺序?答案:直接使用set去重会打乱顺序,初级岗位常用两种稳妥方法:方法1:遍历判断(兼容性最强,所有Python版本通用)PlainText
lst=[2,1,2,3,1,4]
new_lst=[]
foriinlst:
ifinotinnew_lst:
new_lst.append(i)
print(new_lst)#[2,1,3,4]方法2:字典去重(Python3.7+,简洁高效)PlainText
lst=[2,1,2,3,1,4]
new_lst=list(dict.fromkeys(lst))
print(new_lst)七、编程手写题(基础必考)1、写代码实现1-100累加求和答案:三种常用写法(面试推荐手写循环版)循环手写版(面试官最认可)PlainText
sum_num=0
foriinrange(1,101):
sum_num+=i
print(sum_num)内置函数简洁版PlainText
print(sum(range(1,101)))2、判断一个数是否为素数(质数)答案
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 订单交期预判不准复盘内部复盘报告
- 2025资源综合利用目录
- 2025年中国综合仪行业市场前景预测及投资价值评估分析报告
- 2025年中国精密金属件行业市场规模及投资前景预测分析报告
- 2025年中国电力仪器仪表行业市场规模及投资前景预测分析报告
- 医用数理统计方法课件第一章
- 学法减分考试题及答案
- 机房防静电地板安装施工工艺流程
- 2026年大考最后的高考题目及答案
- 2026年大学生百科知识竞赛必刷经典题库及答案(共50题)
- 2025年4月自考00609高级日语(一)试题
- 学校教职工网络安全培训
- 3.1认识自我【中职专用】中职思想政治《心理健康与职业生涯》(高教版2023基础模块)
- 《安娜·卡列尼娜》课件
- 隧道工程工作总结
- 洗浴老人免责协议书
- 人教版(2024新版)七年级上册英语Unit 3 Reading Plus教案
- 山东省青岛市2023-2024学年三年级上学期语文期中阶段质量检测试卷
- 轮毂工艺知识培训课件
- 图解汽轮发电机组工作原理及结构课件
- 中药处方用名和调剂给付规定培训课件
评论
0/150
提交评论