Python面试应急5分钟!

2019-12-14 03:09栏目:bob体育平台
TAG:

 图片 1

1、Python是什么?使用Python有什么好处?

Python基础面试题库

 

Python是一门学习曲线较为容易的编程语言,随着人工智能时代的到来,Python迎来了新一轮的高潮。目前,国内知乎、网易(游戏)、腾讯(某些网站)、搜狐(邮箱)、金山、豆瓣属于使用Python较为知名的企业。国外YouTube、谷歌、Yelp、Slide等也或多或少在使用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)编写代码下载 页面的内容并保存为mt.html

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

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

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

图片 2

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

答案

图片 3

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]

图片 4

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

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

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

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

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

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

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

图片 5

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分)

Python GC主要使用引用计数(reference counting)来跟踪和回收垃圾。在引用计数的基础上,通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用问题,通过“分代回收”(generation collection)以空间换时间的方法提高垃圾回收效率。

23、解释如何在Python中生成随机数字?(3分)

要在Python中生成随机数需要将命令导入

随机导入:random.random()

这将返回范围[0,1)中的随机浮点数

24、解释如何访问用C语言编写的Python模块?(3分)

你可以通过下面的方法访问一个用C写成的模块,

Module = = PyImport_ImportModule(“<modulename>”);

25、在Python中如何使用//运算符?(1分)

它是一个Floor Division Operator,用于将两个操作数相除,结果为小数点前面的数字。例如,10 // 5 = 2和10.0 // 5.0 = 2.0。

26、提到使用Python的五个好处?(2分)

  • Python包含了大多数互联网平台(如电子邮件,HTML等)的巨大标准库。

  • Python不需要显式的内存管理,因为解释器本身将内存分配给新变量并自动释放它们

  • 由于使用方括号而提供易读性

  • 易于初学者学习

  • 具有内置的数据类型,可以节省编程时间和工作量,从而声明变量。

27、简单说明在Python中如何使用split函数?(1分)

在Python中使用split函数是使用定义的分隔符将字符串分解成更短的字符串。它给出了字符串中所有单词的列表。

28、解释什么是Flask及其好处?(2分)

Flask是一个基于“Werkzeug,Jinja 2和良好意图”BSD许可的web微型框架,Werkzeug和jingja是它的两个依赖项。

Flask是微观框架的一部分。这意味着它将很少或不依赖于外部库,它使框架轻而易举,更新和安全漏洞更少。

29、Django,Pyramid和Flask有什么区别?(3分)

Flask是一个“微框架”,主要用于需求更简单的小型应用程序。在Flask中,你必须使用外部库。

Pyramid是为更大的应用程序建立的。它提供了灵活性,并让开发人员为他们的项目使用正确的工具。开发人员可以选择数据库,URL结构,模板样式等等。Pyramid可重新配置。

像Pyramid一样,Django也可以用于更大的应用程序。 它包括一个ORM。

30、Flask-WTF是什么,有什么特点?(3分)

Flask-WTF提供了与WTForms的简单集成,功能包括

  • 与wtforms集成

  • 使用csrf令牌安全形式

  • 全球csrf保护

  • Reptcha支持

  • 与Flask Uploads一起使用的文件上传

31、Flask脚本的常用方式是什么?(1分)

应该是应用程序的导入路径或Python文件的路径

32、如何在Flask中访问会话?(2分)

一个会话基本上允许记住从一个请求到另一个请求的信息。在Flask中,它使用签名的cookie,以便用户可以查看会话内容并进行修改。用户可以修改会话,只要它有密钥Flask.secret_key。

33、Flask是一个MVC模型吗?如果是,可以示例一下吗?(5分)

基本上,Flask是一个简单的框架,其行为与MVC框架相同。所以MVC是Flask的完美选择,示例参考如下:

图片 6

34、解释Python Flask中的数据库连接?(5分)

Flask支持数据库驱动的应用程序(RDBS)。这样的系统需要创建一个模式,将shema.sql文件传送到sqlite3命令。所以需要sqlite3命令才能在Flask中创建或启动数据库。

Flask允许以三种方式请求数据库

  • before_request():它们在请求前被调用并且不传递任何参数

  • after_request():它们在请求之后被调用并且传递将被发送到客户端响应

  • teardown_request():在引发异常的情况下调用,并且不保证响应。他们在响应结束后被调用。他们不允许修改请求,他们的值被忽略。

35、你有多个运行Python的Memcache服务器,其中一个memcacher服务器失败,它有你的数据,它会试图从那个失败的服务器获取关键数据吗?(5分)

发生故障的服务器中的数据不会被删除,但是可以为多个节点配置自动故障规定。可以在任何类型的套接字或Memcached服务器级错误期间触发故障切换,而不会在正常的客户端错误(如添加现有密钥等)期间触发。

36、解释如何最大限度地减少Python开发中的Memcached服务器中断?(5分)

  • 当一个实例失败,这将在客户端发出请求时重新加载丢失的数据,在数据库服务器上承受更大的负载。为了避免这种情况,如果代码已经写入,尽量减少缓存的冲击,那么它将产生最小的影响

  • 另一种方法是使用丢失的机器IP地址在新机器上启动Memcached实例

  • 代码是最大限度减少服务器停机的另一种方法,因为它可以自由地以最少的工作更改Memcached服务器列表

  • 设置超时值是一些Memcached客户端为Memcached服务器中断实现的另一个选项。当Memcached服务器关闭时,客户端将不断尝试发送请求,直到达到超时限制

37、解释Python项目中应不应该使用Memcached?(5分)

Memcached常见的误用是将其用作数据存储,而不是用作缓存

  • 切勿使用Memcached作为运行应用程序所需信息的唯一来源,数据应该始终可以通过其他来源获得

  • Memcached只是一个键或值存储,不能对数据执行查询或遍历内容以提取信息

  • Memcached在加密或认证时不提供任何形式的安全性

不论你是初入江湖,还是江湖老手,只要你想给自己一个定位那就少不了面试!面试的重要性相信大家都知道把,这就是我们常说的“第一印象”,给大家说一下我的面试心得把,面试前的紧张是要的,因为这能让你充分准备。面试时的紧张是绝对要避开的,因为这可能导致你不能充分展现自己,说不定塑普都出来了。

Python是一种具有对象、模块、线程、异常和自动内存管理的编程语言。pythons的优点在于它简单、可移植、可扩展、内置数据结构,而且它是一个开放源码。

  分享个笑话舒缓一下:公司程序员要跳槽,老板不答应,后来,他拔了服务器的硬盘后跑了;公司保安要跳槽,老板不答应,后来,他带着公司的大门钥匙跑了;公司保洁阿姨要跳槽,老板不答应,后来,她在老板抽屉里放一只大蟑螂跑了;公司人事要跳槽,老板不答应,后来,她给自己办了离职手续跑了。不扯了,如果你正准备面试就看下面把。

2、PEP 8是什么?

1)什么是Python?使用Python有什么好处?

Pep 8是一种编码约定,是一组关于如何编写更易读的Python代码的建议。

Python是一种编程语言,包含对象,模块,线程,异常和自动内存管理。蟒蛇的好处在于它简单易用,可移植,可扩展,内置数据结构,并且它是一个开源的。

3、什么是腌制和不腌制?

2)什么是PEP 8?

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

PEP 8是一个编码约定,一组推荐,关于如何编写Python代码更具可读性。

4、Python是如何解释的?

3)什么是酸洗和去除?

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

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

5、如何在Python中管理内存?

4)如何解释Python?

  • Python内存由Python私有堆空间管理。所有Python对象和数据结构都位于私有堆中。程序员没有对这个私有堆的访问权,解释器负责处理这个Python私有堆。
  • Python内存管理器为Python对象分配Python堆空间。核心API允许程序员访问一些工具来编写代码。
  • Python还有一个内置的垃圾收集器,它回收所有未使用的内存,释放内存并使其可供堆空间使用。

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

6、帮助查找bug或执行静态分析的工具是什么?

5)如何在Python中管理内存?

PyChecker是一个静态分析工具,它检测Python源代码中的bug,并警告bug的样式和复杂性。Pylint是另一个验证模块是否符合编码标准的工具。

  • Python内存由Python私有堆空间管理。所有Python对象和数据结构都位于私有堆中。程序员无权访问此私有堆,解释器负责处理此私有堆。
  • Python对象的Python堆空间分配由Python内存管理器完成。核心API提供了一些程序员编写代码的工具。
  • Python还有一个内置的垃圾收集器,它可以回收所有未使用的内存并释放内存并使其可用于堆空间。

7、Python装饰器是什么?

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

Python修饰器是我们在Python语法中进行的一项特定更改,可以轻松地更改函数。

PyChecker是一个静态分析工具,可以检测Python源代码中的错误,并警告错误的风格和复杂性。Pylint是另一种验证模块是否符合编码标准的工具。

8、列表和元组有什么区别?

7)什么是Python装饰器?

列表和元组的区别在于列表是可变的,而元组不是可变的。元组可以作为字典的密钥进行散列。

Python装饰器是我们在Python语法中进行的一项特定更改,可以轻松地更改函数。

9、如何通过价值或引用传递论点?

8)list和tuple有什么区别?

Python中的所有内容都是一个对象,所有变量都保存对象的引用。引用值是根据函数进行的;因此,您不能更改引用的值。但是,如果对象是可变的,则可以更改它。

列表和元组之间的区别在于列表是可变的而元组不是。元组可以被散列为例如作为字典的关键。

10、什么是切分和清单理解?

9)参数如何通过值或引用传递?

它们是语法结构,可以简化基于现有可迭代性的字典或列表的创建。

Python中的所有内容都是一个对象,所有变量都包含对象的引用。参考值根据功能; 因此,您无法更改引用的值。但是,如果对象是可变的,则可以更改它们。

 

10)Dict和List理解是什么?

对Python开发技术感兴趣的同学,欢迎加QQ群:705673780,一起学习,相互讨论。

它们是语法结构,可以根据现有的iterable轻松创建Dictionary或List。

 

11)python提供的内置类型是什么?

11、python提供的内置类型是什么?

有可变和不可变类型的Pythons以Mutable内置类型构建

在类型中内置了可变和不可变的Pythons类型。

  • 名单
  • 字典
  • 列单
  • 字典

不可变的内置类型

不可变内建类型

  • 字符串
  • 元组
  • 数字
  • 元组
  • 数字

12)Python中的命名空间是什么?

12、Python中的名称空间是什么?

在Python中,引入的每个名称都有一个存在的地方,并且可以被挂钩。这称为命名空间。它就像一个框,其中变量名称映射到放置的对象。每当搜索到变量时,将搜索此框以获取相应的对象。

在Python中,引入的每个名称都有它所在的位置,并且可以挂起。这被称为命名空间。它就像一个框,其中一个变量名被映射到放置的对象。只要搜索出变量,就会搜索该框,以获得相应的对象。

13)Python中的lambda是什么?

13、Python中lambda是什么?

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

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

14)为什么python中的lambda表单没有语句?

14、为什么python中的lambda表单没有语句?

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

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

15)什么是Python传递?

15、Python中传递了什么?

通过意味着,无操作的Python语句,或者换句话说,它是复合语句中的占位符,其中应该留有空白,不必在那里写入任何内容。

PASS意味着不操作Python语句,或者换句话说,它是复合语句中的位置持有者,在复合语句中应该留下空白,而不必在其中写入任何东西。

16)在Python中什么是迭代器?

16、在Python中,迭代器是什么?

在Python中,迭代器用于迭代一组元素,如列表之类的容器。

在Python中,迭代器用于迭代一组元素,比如列表之类的容器。

17)什么是Python中的单元测试?

17、Python中的统一测试是什么?

版权声明:本文由bob体育app发布于bob体育平台,转载请注明出处:Python面试应急5分钟!