Python面试前四十问答精选

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

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

2、PEP 8是什么? 

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

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

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

4、Python是如何解释的? 

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

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

• Python内存由Python私有堆空间管理。所有Python对象和数据结构都位于私有堆中。程序员没有对这个私有堆的访问权,解释器负责处理这个Python私有堆。 

• Python内存管理器为Python对象分配Python堆空间。核心API允许程序员访问一些工具来编写代码。 

• Python还有一个内置的垃圾收集器,它回收所有未使用的内存,释放内存并使其可供堆空间使用。

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

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

7、Python装饰器是什么? 

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

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

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

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

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

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

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

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

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

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

• 列单 

• 集 

• 字典 

不可变内建类型 

• 弦 

• 元组 

• 数字

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

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

13、Python中lambda是什么? 

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

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

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

15、Python中传递了什么? 

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

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

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

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

Python中的单元测试框架称为unittest。它支持共享设置、自动化测试、用于测试的关闭代码、将测试聚合为集合等。

18、在Python中,什么是切片? 

从序列类型(如列表、元组、字符串等)中选择一系列项的机制称为切片。

19、Python中的生成器是什么? 

实现迭代器的方法称为生成器。它是一个正常函数,只是它在函数中产生表达式。

20、Python中的docstring是什么? 

Python文档字符串称为docstring,它是记录Python函数、模块和类的一种方式。

21、如何用Python复制对象? 

要在Python中复制对象,可以在一般情况下尝试Copy.Copy()或Copy.深度复制()。除了大多数对象之外,您不能复制所有对象。

22、Python中的负索引是什么? 

Python序列可以是正数和负数的索引。对于正指数,0是第一个指标,1是第二个指标,依此类推。对于负指数,(-1)是最后一个指数,(-2)是第二个最后一个指数,依此类推。

23、如何将数字转换为字符串? 

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

24、Xrange和范围有什么区别? 

Xrange返回xrange对象,Range返回列表,并使用相同的内存,而不管范围大小如何。

25、Python中的模块和包是什么? 

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

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

26、提到Python中局部变量和全局变量的规则是什么? 

局部变量如果变量在函数体内的任何地方都被分配了一个新值,则假定它是局部的。 

全局变量那些仅在函数中引用的变量是隐式全局的。

27、如何跨模块共享全局变量? 

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

28、解释如何在Unix上使Python脚本可执行? 

要使Python脚本在Unix上可执行,您需要做两件事, 

• 脚本文件的模式必须是可执行的,并且 

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

29、解释如何删除Python中的文件? 

通过使用命令os.emove(文件名)或os.unlink(文件名)

30、解释如何在Python中生成随机数? 

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

进口随机 

随机() 

这将返回[0,1]范围内的随机浮点数。

31、解释如何从C访问用Python编写的模块? 

您可以通过以下方法从C访问用Python编写的模块, 

模块=PyImport_ImportModule(“”);

32、提到在Python中使用/操作符? 

它是一个地板除法运算符,用于除以两个操作数,其结果为商,仅显示小数点之前的数字。例如,10/5=2和10.0/5.0=2.0。

33、提到使用Python的五个好处? 

• Python由一个巨大的标准库组成,用于大多数Internet平台,如电子邮件、HTML等。 

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

• 由于使用方括号,提供了简单的可读性。 

• 初学者易学 

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

34、提及拆分功能的使用 用Python? 

Python中拆分函数的使用是使用定义的分隔符将字符串拆分为较短的字符串。它给出了字符串中所有单词的列表。

35、解释什么是瓶子及其好处? 

烧瓶是一个基于“Werkzeug,Jinja 2和善意”BSD许可的Python的Web微框架。Werkzeug和jingja是它的两个依赖项。 

烧瓶是微框架的一部分。这意味着它对外部库几乎没有依赖。它使框架变得轻巧,同时几乎没有需要更新的依赖项,并且安全性bug也较少。

36、提到Django、金字塔和水瓶之间有什么区别? 

烧瓶是一个“微框架”,主要是为一个需求更简单的小应用程序而构建的。在烧瓶中,您必须使用外部库。烧瓶准备好了。 

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

像金字塔一样,Django也可以用于更大的应用。它包括一个ORM。

37、提到什么是水瓶-WTF和它们的特点是什么? 

水瓶-WTF提供与WTForms的简单集成。提供的特性包括: 

• 与wtform的集成 

• 使用CSRF令牌的安全表单 

• 全球CSRF保护 

• 国际化整合 

• RECAPTCHA支持 

• 与Flask上载一起工作的文件上传

38、解释一下瓶脚本工作的常见方法是什么? 

烧瓶脚本工作的常见方法是 

• 或者它应该是应用程序的导入路径。 

• 或Python文件的路径。

39、解释如何在水瓶中访问会话? 

会话基本上允许您记住从一个请求到另一个请求的信息。在一个烧瓶中,它使用一个签名的cookie,这样用户就可以查看会话内容并修改。用户可以修改会话,只要它有秘密密钥Flask.security_key。

40、Flask是一个MVC模型吗?如果是的话,给出一个示例来显示您的应用程序的MVC模式吗? 

基本上,Flask是一个极简式的框架,它的行为与MVC框架相同。因此MVC非常适合于Flask,我们将在下面的示例中考虑MVC的模式 

从瓶进口瓶 

APP=瓶(Name

@app.path(“/”) 

def hello(): 

返回“你好世界” 

运行(DEBUG=True) 在这段代码中, 

• 配置部分将是 

从瓶进口瓶 

APP=瓶(Name

• 视图部分 

@app.path(“/”) 

def hello(): 

返回“你好世界” 

• 而你的模特儿或主要角色 

运行(DEBUG=True)

41、用PythonFlask解释数据库连接? 

烧瓶支持数据库驱动的应用程序(RDB)。这样的系统需要创建一个模式,它需要将shema.sql文件编成sqlite 3命令。因此,您需要安装sqlite 3命令,以便在Flask中创建或启动数据库。 

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

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

• 后置请求():在请求之后调用它们,并将发送给客户端的响应传递给客户端。 

• teardown_request():在引发异常时调用它们,并且不能保证响应。它们是在构建响应后调用的。不允许它们修改请求,并且忽略它们的值。

42、您有多个memcache服务器运行Python,其中一个memcacher服务器失败了,并且它拥有您的数据,它会尝试从那个失败的服务器获取关键数据吗? 

失败服务器中的数据不会被删除,但是有一个自动故障的规定,您可以为多个节点配置它。故障转移可以在任何类型的套接字或memcached服务器级错误中触发,而不是在添加现有密钥等正常客户端错误时触发。

43、解释如何将Python开发中的memcached服务器中断最小化? 

• 当一个实例失败时,其中有几个会崩溃,当丢失的数据在客户端发出请求时重新加载时,这将给数据库服务器带来更大的负载。为了避免这种情况,如果您的代码是为了最小化缓存拥塞而编写的,那么它将留下最小的影响。 

• 另一种方法是使用丢失的机器ip地址在新机器上打开memcached实例。 

• 代码是最小化服务器中断的另一种选择,因为它允许您以最少的工作量更改memcached服务器列表。 

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

44、解释什么是多桩效应?你怎样才能防止这种影响? 

“狗堆效应”是指缓存过期时发生的事件,网站被客户端同时发出的多个请求击中。使用信号量锁可以防止这种影响。在此系统中,当值过期时,第一个进程将获取锁并开始生成新值。

45、解释如何在Python项目中不使用memcached? 

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

• 永远不要将memcached作为运行应用程序所需的唯一信息来源。数据也应该通过另一个源获得。 

• memcached只是一个键或值存储,不能对数据执行查询或对内容进行迭代以提取信息。 

• memcached在加密或身份验证方面都不提供任何形式的安全性。

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

群内已经有小伙伴将知识体系整理好,欢迎加群免费领取。 

你可能感兴趣的:(Python面试前四十问答精选)