数据结构论坛

注册

 

发新话题 回复该主题

Python精选面试题部分 [复制链接]

1#
北京痤疮的最好医院 http://news.39.net/bjzkhbzy/210627/9113049.html

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

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

2、如何解释Python?

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

3、什么是Python装饰器?

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

4、list和tuple有什么区别?

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

5、Python中的命名空间是什么?

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

6、Python中的lambda是什么?

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

7、什么是Python传递?

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

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

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

9、Python中的负面索引是什么?

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

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

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

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

局部变量:如果在函数体内的任何位置为变量分配了一个新值,则假定它是本地的。全局变量:仅在函数内引用的那些变量是隐式全局变量。

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

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

13、解释如何在Unix上创建Python脚本?

要在Unix上使Python脚本可执行,您需要做两件事,脚本文件的模式必须是可执行的第一行必须以#开头(#!/usr/local/bin/python)

14、解释什么是Dogpile效应?你怎么能防止这种影响?

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

15、解释如何在Python项目中使用Memcached?

Memcached常见的误用是将其用作数据存储,而不是缓存永远不要使用Memcached作为运行应用程序所需信息的唯一来源。数据也应始终通过其他来源提供Memcached只是一个键或值存储,不能对数据执行查询或迭代内容以提取信息Memcached在加密或身份验证方面不提供任何形式的安全性

16、你有多个运行Python的Memcache服务器,其中一个memcacher服务器出现故障,它有你的数据,是否会尝试从那个故障服务器获取关键数据?

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

17、提到什么是Flask-WTF以及它们的特征是什么?

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

与wtforms集成使用csrf令牌保护表单全球csrf保护国际化整合Recaptcha支持文件上传适用于FlaskUploads

18、提到在Python中使用split函数?

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

19、解释如何在Python中删除文件?

使用命令os.remove(filename)或os.unlink(filename)

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

要在Python中生成随机数,您需要将命令导入为随机导入random.random()这将返回[0,1]范围内的随机浮点数

21、深拷贝和浅拷贝之间的区别是什么?

深拷贝就是将一个对象拷贝到另一个对象中,这意味着如果你对一个对象的拷贝做出改变时,不会影响原对象。在Python中,我们使用函数(deepcopy)执行深拷贝;

浅拷贝则是将一个对象的引用拷贝到另一个对象上,所以如果我们在拷贝中改动,会影响到原对象。我们使用函数(function)执行浅拷贝。

22、大数据的文件读取

①利用生成器generator

②迭代器进行迭代遍历:forlineinfile

23、装饰器的作用和功能:

引入日志、函数执行时间统计、执行函数前预备处理、执行函数后的清理功能、权限校验等场景、缓存

24、如何提高python的运行效率

使用生成器;关键代码使用外部功能包(Cython,pylnlne,pypy,pyrex);针对循环的优化–尽量避免在循环中访问变量的属性

25、你用过的爬虫框架或者模块有哪些?谈谈他们的区别或者优缺点?

Python自带:urllib,urllib2

第三方:requests

框架:Scrapy

urllib和urllib2模块都做与请求URL相关的操作,但他们提供不同的功能。urllib2.:urllib2.urlopen可以接受一个Request对象或者url,(在接受Request对象时候,并以此可以来设置一个URL的headers),urllib.urlopen只接收一个urlurllib有urlencode,urllib2没有,因此总是urllib,urllib2常会一起使用的原因scrapy是封装起来的框架,他包含了下载器,解析器,日志及异常处理,基于多线程,twisted的方式处理,对于固定单个网站的爬取开发,有优势,但是对于多网站爬取个网站,并发及分布式处理方面,不够灵活,不便调整与括展。

request是一个HTTP库,它只是用来,进行请求,对于HTTP请求,他是一个强大的库,下载,解析全部自己处理,灵活性更高,高并发与分布式部署也非常灵活,对于功能可以更好实现。

Scrapy优缺点:优点:scrapy是异步的采取可读性更强的xpath代替正则强大的统计和log系统同时在不同的url上爬行支持shell方式,方便独立调试写middleware,方便写一些统一的过滤器通过管道的方式存入数据库缺点:基于python的爬虫框架,扩展性比较差基于twisted框架,运行中的exception是不会干掉reactor,并且异步框架出错后是不会停掉其他任务的,数据出错后难以察觉。

26、爬虫过程中验证码怎么处理?

1.scrapy自带

2.付费接口

分享 转发
TOP
发新话题 回复该主题