资讯专栏INFORMATION COLUMN

11道面试中不常见却一定会问到Python题解析

mudiyouyou / 2135人阅读

摘要:面试题解析我们知道网上有非常多面试题的解析,但是其中往往是前几年的老题了。为了帮助小伙伴们能够在工作面试中脱颖而出,再此特别奉上年道最新面试大题及答题思路解析。类不是一等公民。随机实数返回到之间的浮点数返回指定范围内的浮点数。

Python面试题解析

我们知道网上有非常多面试题的解析,但是其中往往是前几年的老题了。 为了帮助小伙伴们能够在Python工作面试中脱颖而出,再此特别奉上2019年11道最新Python面试大题及答题思路解析。

1、请用python编写函数find_string,从文本中搜索并打印内容,要求支持通配符星号和问号。

例子:

1.  >>>find_string("hello
world
","wor") 
2.  ["wor"] 
3.  >>>find_string("hello
world
","l*d") 
4.  ["ld"] 
5.  >>>find_string("hello
world
","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=225*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") 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43919.html

相关文章

  • 【推荐】最新200篇:技术文章整理

    摘要:作为面试官,我是如何甄别应聘者的包装程度语言和等其他语言的对比分析和主从复制的原理详解和持久化的原理是什么面试中经常被问到的持久化与恢复实现故障恢复自动化详解哨兵技术查漏补缺最易错过的技术要点大扫盲意外宕机不难解决,但你真的懂数据恢复吗每秒 作为面试官,我是如何甄别应聘者的包装程度Go语言和Java、python等其他语言的对比分析 Redis和MySQL Redis:主从复制的原理详...

    BicycleWarrior 评论0 收藏0
  • 【推荐】最新200篇:技术文章整理

    摘要:作为面试官,我是如何甄别应聘者的包装程度语言和等其他语言的对比分析和主从复制的原理详解和持久化的原理是什么面试中经常被问到的持久化与恢复实现故障恢复自动化详解哨兵技术查漏补缺最易错过的技术要点大扫盲意外宕机不难解决,但你真的懂数据恢复吗每秒 作为面试官,我是如何甄别应聘者的包装程度Go语言和Java、python等其他语言的对比分析 Redis和MySQL Redis:主从复制的原理详...

    tommego 评论0 收藏0
  • 金三银四背后,一个 Android 程序员的面试心得

    摘要:到十二月份,公司开始第二波裁员,我决定主动拿赔偿走人。加一个小插曲上面的题是饿了吗面试问到的。想去的公司没有面试好,不要气馁,继续加油准备。避免打击自信心。 回顾一下自己这段时间的经历,九月份的时候,公司通知了裁员,我匆匆忙忙地出去面了几家,但最终都没有拿到offer,我感觉今年的寒冬有点冷。到十二月份,公司开始第二波裁员,我决定主动拿赔偿走人。后续的面试过程我做了一些准备,基本都能走...

    Achilles 评论0 收藏0

发表评论

0条评论

mudiyouyou

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<