Python面试题库,据说网易腾讯谷歌都在用!

来源:网络整理日期:2018/01/11 22:40 浏览:

  【IT168 评论】Python是一门学习曲线较为容易的编程语言,随着人工智能时代的到来,Python迎来了新一轮的高潮。目前,国内知乎、网易(游戏)、腾讯(某些网站)、搜狐(邮箱)、金山、豆瓣属于使用Python较为知名的企业。国外YouTube、谷歌、Yelp、Slide等也或多或少在使用Python。如果你想应聘Python相关职位,不妨面试前自测一下自己对基础知识掌握程度如何?下面是一张一百分的试卷,看看你自己能得几分?

Python基础面试题库,网易腾讯谷歌都在用!


  1、什么是pickling和unpickling?(1分)

  Pickle模块接受任何Python对象,并将其转换为字符串,使用dump函数将其转储到文件中,这个过程称为pickling。从存储的字符串表示中检索原始Python对象的过程称为unpickling。

  2、作为解释型语言,Python如何运行?(1分)

  Python是一种解释型语言。Python程序直接从源代码运行,将程序员编写的源代码转换成中间语言,再将中间语言翻译成必须执行的机器语言。

  3、有哪些工具可以帮助查找错误或执行静态分析?(2分)

  PyChecker是一个静态分析工具,用于检测Python源代码中的错误,并给出错误的类型和复杂性。Pylint是验证模块是否符合编码标准的另一种工具。

  4、按下述要求编写代码,实现以下功能:(5分)

  (1)编写代码下载https://en.wikipedia.org/wiki/Machine_translation 页面的内容并保存为mt.html

  (2)统计mt.html中<p>标签下所有单词并存储到mt_word.txt中,要求:

  a) 每个单词一行。单词在前,单词出现的次数在后,中间用Tab( )分隔。

  b) 单词按照数目从多到少排列。比如说单词a出现了100次,单词b出现了10次,则单词a要在单词b前面。

Python基础面试题库,网易腾讯谷歌都在用!


  5、下面的代码会输出什么:(2分)

  def f(x,l=[]):

  for i in range(x):

  l.append(i*i)

  print l

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

  答案:

  [0, 1][3, 2, 1, 0, 1, 4][0, 1, 0, 1, 4]

  6、阅读下面的代码,它的输出结果是什么?(6分)

  class Node(object):

  def __init__(self,sName):

  self._lChildren = []

  self.sName = sName

  def __repr__(self):

  return "<Node '{}'>".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 oNode

  oRoot = 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()

  答案

Python基础面试题库,网易腾讯谷歌都在用!


  7、Python中lambda是什么意思?(1分)

  它是一个经常用作内联函数的单个表达式匿名函数。

  8、为什么python中的lambda表单没有语句?(1分)

  python中的lambda表单没有语句,因为它用于创建新的函数对象,然后在运行时返回它们。

  9、Python中的pass是什么意思?(1分)

  pass意味着没有任何操作的Python语句,换句话说,它是复合语句中的一个占位符,如果一个地方没有什么必须写在那里,就需要用上pass了。

  10、阅读下面的代码,写出A0,A1至An的最终值。(5分)

  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]

Python基础面试题库,网易腾讯谷歌都在用!


  11、什么是Python的单元测试?(1分)

  Python中的单元测试框架被称为unittest。它支持共享设置,自动化测试,测试关机代码,测试集合等。

  12、在Python中unittest是什么?(1分)

  从列表,元组,字符串等序列类型中选择一系列项目的机制被称为unittest。

  13、什么是Python中的生成器?(1分)

  实现迭代器的方式被称为生成器。除了在函数中产生表达式之外,它是一个正常的函数。

  14、__new__和__init__的区别(4分)

Python基础面试题库,网易腾讯谷歌都在用!


  15、如何复制Python中的对象?(2分)

  要在Python中复制对象,一般情况下可以尝试copy.copy()或copy.deepcopy()。不能复制所有的对象,但大多数还是可以的。

  16、如何将数字转换为字符串?(2分)

  为了将数字转换为字符串,使用内置函数str()。如果想要一个八进制或十六进制表示,使用内置函数oct()或 hex()。

  17、Xrange和range有什么区别?(2分)

  Xrange返回一个xrange对象,而range返回一个数组。不管范围多大,使用同样的内存。

  18、什么是Python中的模块和包?(3分)

  在Python中,模块是构造程序的方式。每个Python程序文件都是一个模块,它导入其他模块,如对象和属性。

  Python程序的文件夹是一个模块包,包可以有模块或子文件夹。

  19、提到Python中的局部和全局变量的规则是什么?(3分)

  ·局部变量:如果一个变量在函数体内的任何地方被分配了一个新的值,它被认为是本地的。

  ·全局变量:使用global定义的变量就是全局变量

  当局部变量名字和全局变量名字重复时,局部变量会覆盖掉全局变量。

  20、怎样才能跨模块共享全局变量?(3分)

  要在单个程序的模块之间共享全局变量,请创建一个配置模块。在应用程序的所有模块中导入配置模块,该模块将作为跨模块的全局变量提供。

  21、解释如何在Unix上创建一个Python脚本可执行文件?(4分)

  要在Unix上创建Python脚本可执行文件需要做两件事情:

  Script文件的模式必须是可执行的

  第一行必须以#(#!/ usr / local / bin / python)开头

  22、Python垃圾回收机制(3分)

服务热线