内容简介:我们知道网上有非常多面试题的解析,但是其中往往是前几年的老题了。 为了帮助小伙伴们能够在Python工作面试中脱颖而出,再此特别奉上2019年11道最新Python面试大题及答题思路解析。例子:
Python面试题解析
我们知道网上有非常多面试题的解析,但是其中往往是前几年的老题了。 为了帮助小伙伴们能够在Python工作面试中脱颖而出,再此特别奉上2019年11道最新Python面试大题及答题思路解析。
1、请用python编写函数find_string,从文本中搜索并打印内容,要求支持通配符星号和问号。
例子:
1. >>>find_string('hello\nworld\n','wor')
2. ['wor']
3. >>>find_string('hello\nworld\n','l*d')
4. ['ld']
5. >>>find_string('hello\nworld\n','o.')
6. ['or']
解析:
1. def find_string(str_in,pat): 2. import re 3. return re.findall(pat,str_in,re.I)
2、看你T恤上印着:人生苦短,我用Python,你可否说说Python到底是什么样的语言?你可以比较其他技术或者语言来回答你的问题。
解析:
这里是一些关键点:Python是解释型语言。这意味着不像C和其他语言,Python运行前不需要编译。其他解释型语言包括 PHP 和Ruby。
1.Python是动态类型的,这意味着你不需要在声明变量时指定类型。你可以先定义x=111,然后 x=”I’m a string”。
2.Python是面向对象语言,所有允许定义类并且可以继承和组合。Python没有访问访问标识如在C++中的public, private, 这就非常信任 程序员 的素质,相信每个程序员都是“成人”了~
3.在Python中,函数是一等公民。这就意味着它们可以被赋值,从其他函数返回值,并且传递函数对象。类不是一等公民。
4.写Python代码很快,但是跑起来会比编译型语言慢。幸运的是,Python允许使用C扩展写程序,所以瓶颈可以得到处理。Numpy库就是一个很好例子,因为很多代码不是Python直接写的,所以运行很快。
5.Python使用场景很多 – web应用开发、大数据应用、数据科学、人工智能等等。它也经常被看做“胶水”语言,使得不同语言间可以衔接上。
6.Python能够简化工作 ,使得程序员能够关心如何重写代码而不是详细看一遍底层实现。
3、请写出一段Python代码实现删除一个list里面的重复元素。
解析:
1.使用set函数,set(list)
2.使用字典函数,
1. >>>a=[1,2,4,2,4,5,6,5,7,8,9,0]
2. >>> b={}
3. >>>b=b.fromkeys(a)
4. >>>c=list(b.keys())
5. >>> c
4、a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3],编程用 sort 进行排序,然后从最后一个元素开始判断?
解析:
1. a.sort() 2. last=a[-1] 3. for i inrange(len(a)-2,-1,-1): 4. if last==a[i]: 5. del a[i] 6. else:last=a[i] 7. print(a)
本题解析来源:@Tom_junsong
5、Python里面如何生成随机数?
解析:
random模块
随机整数:random.randint(a,b):返回随机整数x,a<=x<=b
random.randrange(start,stop,[,step]):返回一个范围在(start,stop,step)之间的随机整数,不包括结束值。
随机实数:random.random( ):返回0到1之间的浮点数
random.uniform(a,b):返回指定范围内的浮点数。
本题解析来源:@Tom_junsong
6、Python里面如何实现tuple和list的转换?
解析:
直接使用tuple和list函数就行了,type()可以判断对象的类型
7、什么是lambda函数?它有什么好处?
解析:
lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数
lambda函数:首要用途是指点短小的回调函数
1. lambda [arguments]:expression 2. >>> a=lambdax,y:x+y 3. >>> a(3,11)
8、- 输入一个字符串 返回满足以下条件的字符串
- 由字符串的最前面两个字母和最后两个字母组成的字符串。
- 例如: 'spring' 返回 'spng', 'is' 返回 'is’
- 当输入的字符串长度小于2时,返回空字符串
解析:
1. s=input('input:')
2. l=len(s)
3. if l<2:
4. print('')
5. else :
6. if l>3:
7. s=s[:2]+s[-2:]
8. print(s)
9、把每个合数分解成几个质数相乘的形式,例如:100=2 2 5*5,并把代码封装成函数的形式
解析:
1. def f(n): 2. result = [] 3. i = 2 4. str1 = str(n) + '=' 5. while n > 1: 6. if n % i == 0: 7. n /= i 8. result.append(str(i)) 9. i -= 1 10. i += 1 11. str1 += '*'.join(result) 12. return str1 15. if __name__ == '__main__': 16. for i in range(100, 120): 17. print(f(i))
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
10、请用Python手写实现冒泡排序
解析:
冒泡 排序 的原理不难,假定要将被排序的数组R[1..n]从大到小垂直排列,每个数字R可以看作是重量为R.key的气泡。
根据轻气泡在上、重气泡在上的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,则使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上、重者在下为止。
然后将所有气泡逆序,就实现了数组从小到大的排序。
步骤:
1 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2 对第0个到第n-1个数据做同样的工作。这时,最大的数就到了数组最后的位置上。
3 针对所有的元素重复以上的步骤,除了最后一个。
4 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
Python实现
1. def bubble_sort(arry): 2. #获得数组的长度 3. n = len(arry) 4. for i in range(n): 5. for j in range(1,n-i): 6. #如果前者比后者大 7. if arry[j-1] > arry[j] : 8. #则交换两者 9. arry[j-1],arry[j] = arry[j],arry[j-1] 10. return arry
11、- 判断是否为回文
- 提示:回文:62426是回文数字
解析:
1. s=input('pls input a string of numbes:')
2. s_=s[::-1]
3. answer='isn\'t'
4. if s_==s:
5. answer='is'
6. print(s,answer,'Palindrome number')
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Beginning Google Maps API 3
Gabriel Svennerberg / Apress / 2010-07-27 / $39.99
This book is about the next generation of the Google Maps API. It will provide the reader with the skills and knowledge necessary to incorporate Google Maps v3 on web pages in both desktop and mobile ......一起来看看 《Beginning Google Maps API 3》 这本书的介绍吧!