当前位置: 首页 > 科技观察

11道不常见但一定会问Python的面试题解析

时间:2023-03-15 21:56:37 科技观察

Python面试题解析网上有很多面试题解析,但大部分都是往年的老题。为了帮助小伙伴们在Python求职面试中脱颖而出,在此整理出2019年11道最热门的Python面试题及答案。1.请用python编写find_string函数,从文本中搜索并打印出内容。需要支持通配符星号和问号。示例:>>>find_string('hello\nworld\n','wor')['wor']>>>find_string('hello\nworld\n','l*d')['ld']>>>find_string('hello\nworld\n','o.')['or']分析:deffind_string(str_in,pat):importreturnre.findall(pat,str_in,re.I)2.查看你的印刷品T恤作者:人生苦短,我用的是Python,你能告诉我Python是什么语言吗?你可以通过对比其他技术或语言来回答你的问题。分解:以下是一些要点:Python是一种解释型语言。这意味着与C和其他语言不同,Python不需要编译就可以运行。其他解释型语言包括PHP和Ruby。1.Python是动态类型的,这意味着你在声明变量时不需要指定类型。您可以先定义x=111,然后定义x="I'mastring"。2.Python是面向对象的语言,所有的类都可以定义,可以继承组合。Python没有C++中的public、private等访问标识,非常信任程序员的素质,相信每个程序员都是“大人”~3。在Python中,函数是一等公民。这意味着它们可以被赋值,从其他函数返回值,并传递函数对象。阶级不是一等公民。4.编写Python代码速度快,但运行速度比编译型语言慢。幸运的是,Python允许使用C扩展来编写程序,因此可以解决瓶颈问题。Numpy库就是一个很好的例子,因为很多代码不是直接用Python写的,所以运行起来非常快。5、Python的使用场景很多——Web应用开发、大数据应用、数据科学、人工智能等等。它也经常被看作是一种“胶水”语言,可以让不同的语言连接起来。6.Python可以简化工作,让程序员关心如何改写代码,而不用去细看底层实现。本题分析来源:@David9,链接:http://nooverfit.com/wp/153请写一段Python代码删除列表中的重复元素。分析:1.使用set函数,set(list)2.使用字典函数,>>>a=[1,2,4,2,4,5,6,5,7,8,9,0]>>>b={}>>>b=b.fromkeys(a)>>>c=list(b.keys())>>>c本题分析来源:@Tom_junsong4,a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3],编程用sort排序,然后从最后一个元素开始判断?分析:a.sort()last=a[-1]foriinrange(len(a)-2,-1,-1):iflast==a[i]:dela[i]else:last=a[i]print(a)本题分析来源:@Tom_junsong5,Python中如何生成随机数?分析:random模块随机整数:random.randint(a,b):返回随机整数x,a<=x<=brandom.randrange(start,stop,[,step]):返回范围内的一个随机整数(start,stop,step),不包括结束值。随机实数:random.random():返回一个0到1之间的浮点数random.uniform(a,b):返回指定范围内的一个浮点数。本题分析出处:@Tom_junsong6,如何在Python中实现tuple和list的转换?分析:直接用tuple和list函数就可以了,type()可以判断对象的类型。7.什么是lambda函数?它有什么好处?分析:lambda表达式一般用在需要函数的时候,但是又不想费心给函数命名,即匿名函数lambda函数:主要目的是指向一个简短的回调函数lambda[arguments]:expression>>>a=lambdax,y:x+y>>>a(3,11)8.-输入一个字符串,返回满足以下条件的字符串-由字符串前两个字母组成的字符串和***两个字母的字符串。-例如:'spring'返回'spng','is'返回'is'-当输入字符串长度小于2时,返回空字符串分析:s=input('input:')l=len(s)ifl<2:print('')else:ifl>3:s=s[:2]+s[-2:]print(s)9.将每个合数分解成几个质数相乘的形式,例如:100=2*2*5*5,将代码封装成函数形式分析:deff(n):result=[]i=2str1=str(n)+'='while>1:ifn%i==0:n/=iresult.append(str(i))i-=1i+=1str1+='*'.join(result)返回str1if__name__=='__main__':foriinrange(100,120):print(f(i))分解n的质因数,首先要找到一个最小的质数k,然后按以下步骤完成:(1)如果质数正好等于n,则说明质因数分解结束,直接打印出来。(2)如果n<>k,但n可以被k整除,则打印出k的值,并将n除以k的商作为新的正整数n,步骤#1为重复。(3)如果n不能被k整除,则使用k+1作为k的值,并重复步骤#1。10、请用Python手写实现冒泡排序分析:冒泡排序的原理并不难,假设排序后的数组R[1..n]要从大到小垂直排列,每个数R都可以看作作为R.key的权重气泡。根据轻泡在上,重泡在上的原则,数组R是从下往上扫描的:如果有违反这个原则的轻泡被扫描到,就会“浮”上去。重复此操作,直到任意两个气泡都是最轻的在顶部,最重的在底部。然后把所有的泡泡倒转,实现数组从小到大的排序。步骤:1比较相邻元素。如果第一个大于第二个,则交换它们。2对第0到第n-1个数据执行相同的操作。此时,数字***就在阵法的***位置。3对除最后一个元素之外的所有元素重复上述步骤。4不断重复上述步骤,每次的元素越来越少,直到没有一对数字可以比较。Python实现defbubble_sort(arry):#获取数组的长度n=len(arry)foriinrange(n):forjinrange(1,n-i):#如果前者大于后者ifarry[j-1]>arry[j]:#然后交换两个arry[j-1],arry[j]=arry[j],arry[j-1]returnarry11,-判断是否是回文-提示:palindrome:62426是回文数字分析:s=input('plsinputastringofnumbers:')s_=s[::-1]answer='isn\'t'ifs_==s:answer='is'print(s,answer,'Palindromenumber')如果你想看更多关于Python的面试题,推荐大家点击“阅读原文”前往7月在线AI面试题库。题库目前有上千道AI面试题解析,涵盖所有考点,包括机器学习、深度学习、Python、NLP、数据挖掘、算法等各个方面。