Python面试必须要看的15个问题

本文由EarlGrey@编程派编译,转载请务必注明作者及出处。 点击“阅读原文”查看答案即可。

引言

想找一份Python开发工作吗?那你很可能得证明自己知道如何使用Python。下面这些问题涉及了与Python相关的许多技能,问题的关注点主要是语言本身,不是某个特定的包或模块。每一个问题都可以扩充为一个教程,如果可能的话。某些问题甚至会涉及多个领域。

我之前还没有出过和这些题目一样难的面试题,如果你能轻松地回答出来的话,赶紧去找份工作吧!

问题1

到底什么是Python?你可以在回答中与其他技术进行对比(也鼓励这样做)。

问题2

补充缺失的代码def print_directory_contents(sPath):

"""

这个函数接受文件夹的名称作为输入参数,

返回该文件夹中文件的路径,

以及其包含文件夹中文件的路径。

"""

# 补充代码

问题3

阅读下面的代码,写出A0,A1至An的最终值。A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5)))

A1 = range(10)

A2 = [i for i in A1 if i in A0]

A3 = [A0[s] for s in A0]

A4 = [i for i in A1 if i in A3]

A5 = {i:i*i for i in A1}

A6 = [[i,i*i] for i in A1]

问题4

Python和多线程(multi-threading)。这是个好主意码?列举一些让Python代码以并行方式运行的方法。

问题5

你如何管理不同版本的代码?

问题6

下面代码会输出什么:def f(x,l=[]):

for i in range(x):

l.append(i*i)

print lf(2)f(3,[3,2,1])f(3)

问题7

“猴子补丁”(monkey patching)指的是什么?这种做法好吗?

问题8

这两个参数是什么意思:args,*kwargs?我们为什么要使用它们?

问题9

这些是什么意思:@classmethod, @staticmethod, @property?

问题10

阅读下面的代码,它的输出结果是什么?class A(object):

def go(self):

print "go A go!"

def stop(self):

print "stop A stop!"

def pause(self):

raise Exception("Not Implemented")class B(A):

def go(self):

super(B, self).go()

print "go B go!"class C(A):

def go(self):

super(C, self).go()

print "go C go!"

def stop(self):

super(C, self).stop()

print "stop C stop!"class D(B,C):

def go(self):

super(D, self).go()        print "go D go!"

def stop(self):

super(D, self).stop()

print "stop D stop!"

def pause(self):

print "wait D wait!"class E(B,C): pass

a = A()

b = B()

c = C()

d = D()

e = E()

# 说明下列代码的输出结果

a.go()

b.go()

c.go()

d.go()

e.go()

a.stop()

b.stop()

c.stop()

d.stop()

e.stop()

a.pause()

b.pause()

c.pause()

d.pause()

e.pause()

问题11

阅读下面的代码,它的输出结果是什么?class Node(object):

def __init__(self,sName):

self._lChildren = []

self.sName = sName

def __repr__(self):

return "".format(self.sName)

def append(self,*args,**kwargs):

self._lChildren.append(*args,**kwargs)

def print_all_1(self):

print self

for oChild in self._lChildren:

oChild.print_all_1()

def print_all_2(self):

def gen(o):

lAll = [o,]

while lAll:

oNext = lAll.pop(0)

lAll.extend(oNext._lChildren)

yield oNext

for oNode in gen(self):

print oNodeo

Root = Node("root")oChild1 = Node("child1")

oChild2 = Node("child2")

oChild3 = Node("child3")

oChild4 = Node("child4")

oChild5 = Node("child5")

oChild6 = Node("child6")

oChild7 = Node("child7")

oChild8 = Node("child8")

oChild9 = Node("child9")

oChild10 = Node("child10")

oRoot.append(oChild1)

oRoot.append(oChild2)

oRoot.append(oChild3)

oChild1.append(oChild4)

oChild1.append(oChild5)

oChild2.append(oChild6)

oChild4.append(oChild7)

oChild3.append(oChild8)

oChild3.append(oChild9)

oChild6.append(oChild10)

# 说明下面代码的输出结果

oRoot.print_all_1()

oRoot.print_all_2()

问题12

简要描述Python的垃圾回收机制(garbage collection)。

问题13

将下面的函数按照执行效率高低排序。它们都接受由0至1之间的数字构成的列表作为输入。这个列表可以很长。一个输入列表的示例如下:[random.random() for i in range(100000)]。你如何证明自己的答案是正确的。def f1(lIn):

l1 = sorted(lIn)

l2 = [i for i in l1 if i<0.5]

return [i*i for i in l2]

def f2(lIn):

l1 = [i for i in lIn if i<0.5]

l2 = sorted(l1)

return [i*i for i in l2]

def f3(lIn):

l1 = [i*i for i in lIn]

l2 = sorted(l1)

return [i for i in l1 if i

问题14

你有过失败的经历吗?

问题15

你有实施过个人项目吗?

真的?

结语

我给出的这些问题时,有意涉及了多个领域。而且答案也是特意写的较为啰嗦。在编程面试中,你需要展示自己对语言的理解,如果你能简要地说清楚,那请务必那样做。我尽量在答案中提供了足够的信息,即使是你之前从来没有了解过这些领域,你也可以从答案中学到些东西。我希望本文能够帮助你找到满意的工作。

加油!

题图:pexels,CC0 授权。

python面试应急5分钟_Python面试必须要看的15个问题相关推荐

  1. Python面试应急5分钟!

    不论你是初入江湖,还是江湖老手,只要你想给自己一个定位那就少不了面试!面试的重要性相信大家都知道把,这就是我们常说的"第一印象",给大家说一下我的面试心得把,面试前的紧张是要的,因 ...

  2. 试看5分钟视频python_Python面试应急5分钟!

    不论你是初入江湖,还是江湖老手,只要你想给自己一个定位那就少不了面试!面试的重要性相信大家都知道把,这就是我们常说的"第一印象",给大家说一下我的面试心得把,面试前的紧张是要的,因 ...

  3. python程序员面试宝典 陈屹_Python 面试宝典

    步入 9 月,徐徐的秋风给酷热的天气带来丝丝凉意.同时,也吹来一股招聘高潮.俗话说"金九银十",每年的 9.10 月都是招聘高潮.有些小伙伴会参加秋招,有些小伙伴会选择跳槽.猴哥特 ...

  4. python高级开发面试题_python面试的100题(16)

    Python高级 元类 42.Python中类方法.类实例方法.静态方法有何区别? 类方法: 是类对象的方法,在定义时需要在上方使用 @classmethod 进行装饰,形参为cls,表示类对象,类对 ...

  5. python中常见的流程_Python面试中最常见的25个问题-结束

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 13)Python中的lambda表达式是什么? lambda表达式是一个匿名函数,通常用作代码行内的嵌入函数. 14)为什么Python中的lambda ...

  6. python有趣的面试题_python面试题目

    问题一:以下的代码的输出将是什么? 说出你的答案并解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Par ...

  7. python获取小时和分钟_Python:以小时,分钟和秒为单位读取文本文件;和度数,弧分和弧秒...

    我试图使用matplotlib从python中的文件中绘制数据. 该文件包含2列.第一列有小时:分钟:秒.第二列有度:弧分:弧秒. 对于小时:分钟:秒我使用datetime.strptime('%H: ...

  8. python秒数变分钟_python时间时分秒与秒数的互相转换

    受到Unix时间戳的启发,我发现时间转成秒数后会非常好处理,在程序当中不再是以字符串的形式处理,不管时间的加减还是获取随机的时间点都变得非常方便, 如果有需要,也很容易转换成需要的时间格式. 一:时间 ...

  9. python人工智能方向入门书籍推荐_python 人工智能 入门要看那些理论书

    展开全部 1.<Python编程:入门2113到实践> 书中内容分5261为基础篇和实战篇两部分.基础篇介4102绍基1653本的编程概念,实战篇介绍如何利用新学到的知识开发功能丰富的项目 ...

最新文章

  1. linux+Qt 下利用D-Bus进行进程间高效通信的三种方式
  2. HDU1172猜数字 [模拟]
  3. jzoj5698-[gdoi2018day1]密码锁【贪心,差分】
  4. 【janio】janio ClassBodyEvaluator 的使用
  5. Ubuntu-创建wifi热点-Android能连接(2)
  6. arcgis将一个shp图层导出为多个shp
  7. 基于SpringBoot的社团管理系统的设计与实现
  8. FOI冬令营 Day1
  9. VASP服务器第一次安装各种软件(中)
  10. ubuntu20.04 命令行下,复制与粘贴快捷键分别是ctrl+shift+c、 ctrl+shift+v
  11. linux鼠标切换窗口的快捷键设置,Xshell中如何设置鼠标快捷键
  12. 十二烷基-β-D-麦芽糖苷/CAS号: 69227-93-6
  13. 基于asp.net742自驾游旅游服务网站的设计
  14. Malcolm的新书:Outliers
  15. 高通Camera驱动(2)-- openinitialize
  16. Matlab读取shp文件及存储形式
  17. 2022年系统集成项目管理工程师考试知识点:项目成本管理
  18. MySQL-5.6版本GTID的主从复制
  19. M_Map绘图笔记——函数详解(四)
  20. Canvas下落钢琴小游戏

热门文章

  1. 2高并发服务器:多线程服务器
  2. 最全的IO操作知识总结
  3. Struts result param详细设置
  4. 使用Spring进行面向切面编程(AOP)---讲解+代码
  5. Strut2和FreeMarker整合时的一些问题
  6. 打开高效文本编辑之门_调用Linux的sed命令
  7. 操作多个表_7_基于子串的连接
  8. SpringCloud实战4-Hystrix线程隔离请求缓存请求合并
  9. visio 转 pdf 裁边 ——使用pdfcrop对PDF裁边
  10. ​十六周一次课(4月11日) 学习完成 18.11 LVS DR模式搭建 18.12 keepalived + LVS