python 的面试题

发布时间:2022-05-07 09:47:45 人气:49 作者:多测师

  问题1

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

  答案

  下面是一些关键点:

  Python是一种解释型语言。这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需要编译。其他解释型语言还包括PHP和Ruby。

  Python是动态类型语言,指的是你在声明变量时,不需要说明变量的类型。你可以直接编写类似x=111和x="I'm a string"这样的代码,程序不会报错。

  Python非常适合面向对象的编程(OOP),因为它支持通过组合(composition)与继承(inheritance)的方式定义类(class)。Python中没有访问说明符(access specifier,类似C++中的public和private),这么设计的依据是“大家都是成年人了”。

  在Python语言中,函数是第一类对象(first-class objects)。这指的是它们可以被指定给变量,函数既能返回函数类型,也可以接受函数作为输入。类(class)也是第一类对象。

  Python代码编写快,但是运行速度比编译语言通常要慢。好在Python允许加入基于C语言编写的扩展,因此我们能够优化代码,消除瓶颈,这点通常是可以实现的。numpy就是一个很好地例子,它的运行速度真的非常快,因为很多算术运算其实并不是通过Python实现的。

  Python用途非常广泛——网络应用,自动化,科学建模,大数据应用,等等。它也常被用作“胶水语言”,帮助其他语言和组件改善运行状况。

  Python让困难的事情变得容易,因此程序员可以专注于算法和数据结构的设计,而不用处理底层的细节。

  为什么提这个问题:

  如果你应聘的是一个Python开发岗位,你就应该知道这是门什么样的语言,以及它为什么这么酷。以及它哪里不好。

python 的面试题

  问题2

  补充缺失的代码

  def print_directory_contents(sPath):

  """

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

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

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

  """

  # 补充代码

  答案

  dir_list=[]

  def print_directory_contents(sPath):

  import os

  for sChild in os.listdir(sPath):

  sChildPath = os.path.join(sPath,sChild)

  dir_list.append(sChildPath)

  if os.path.isdir(sChildPath):

  print_directory_contents(sChildPath)

  else:

  print (sChildPath)

  特别要注意以下几点:

  命名规范要统一。如果样本代码中能够看出命名规范,遵循其已有的规范。

  递归函数需要递归并终止。确保你明白其中的原理,否则你将面临无休无止的调用栈(callstack)。

  我们使用os模块与操作系统进行交互,同时做到交互方式是可以跨平台的。你可以把代码写成sChildPath = sPath + '/' + sChild,但是这个在Windows系统上会出错。

  熟悉基础模块是非常有价值的,但是别想破脑袋都背下来,记住Google是你工作中的良师益友。

  如果你不明白代码的预期功能,就大胆提问。

  坚持KISS原则!保持简单,不过脑子就能懂!

  为什么提这个问题:

  说明面试者对与操作系统交互的基础知识

  递归真是太好用啦

  以上内容为大家介绍了python 的面试题,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线