概述
1.小明在用python实现文件上传功能时,做了如下操作,其中做法不恰当的是( )
A. 通过黑名单验证上传的文件后缀名称
B. 设置上传目录不可解析
C. 重命名上传的文件名称
D. 使用单独的服务器存放上传的文件
答案:A
[黑名单是危险易绕过的,可以使用文件后缀名白名单验证和随机文件名称的方式]
2. 阅读下列Django代码,在横线上填入( )后,代码的效率最高
books = Book.objects.filter(..)
______
do_stuff_with_books(books)
A. if len(books) > 5:
B. if books.count() > 5:
C. if len(Book.objects.filter(..)) > 5:
D. 三个选项没有区别
答案:A
[如果想要知道总共有多少条数据,那么建议使用 count ,而不是使用 len(articles) 这种。因为 count 在底层是使用 select count(*) 来实现的,这种方式比使用 len 函数更加的高效;但是Django会缓存查询结果, 所以如果后续的操作会用到这些查询出来的数据 ,可以使用 Python的内置方法(指的是len,if判断queryset,下面例子)。如果不用查询出的数据,使用queryset提供的方法(count(), exists())]
3.阅读下面Flask代码,以商品(good.py)的模块代码为例, 可能会抛出异常的地方是 ( )
1. # from flask import Blueprint
2.
3. good_blueprint = Blueprint( 'good', __name__, url_prefix='/api/good' )
4.
5. @good_blueprint.route('/')
6. def getGoods():
7. pass
8.
9. @good_blueprint.route('/<catagory_id>')
10. def getGoodsInCatagory(<catagory_id>):
11. pass
A. 第3行
B. 第5行
C. 第9行
D. 第10行
[本题考查代码的规范和参数使用在实际项目的易错处, D第10行中的方法中的参数不应该用“<>”, 默认不写或者以元组的形式传入。]
4.def fn(*arg):
print('a', arg)
fn('b', 'c')
以上代码输出结果为
A. a (‘b’, ‘c’)
B. a b c
C. a b
D. a c
答案:A
5.在提供更多接口给用户使用的时候,有时需要做页面的跳转, 除了自己开发的页面外,还有其他第三方的跳转链接,但可以返回原页面,下列Flask语句可以解决其需要的操作是( )
A. return redirect(url_for('hello'))
B. return Resonse(url_for('hello'))
C. return send_template(url_for('hello'))
D. return redirect ('hello')
答案:A
[重定向到某一web页面并且可返回,首选redirect的用法,url_for方法简单来说,这个函数接受视图函数的名字(字符串形式)作为参数,返回视图函数对应的url。]
6.以下关于Pandas异常值检测的说法中错误的是()
A. 3σ原则利用了统计学中小概率事件的原理
B. 使用箱线图方法时要求数据服从或近似服从正态分布
C. 基于聚类的方法可以进行离群点检测
D. 基于分类的方法可以进行离群点检测
答案:B
[是利用箱型图的四分位距(IQR)对异常值进行检测,也叫Tukey‘s test。箱型图的定义如下: 四分位距(IQR)就是上四分位与下四分位的差值。而我们通过IQR的1.5倍为标准,规定:超过上四分位+1.5倍IQR距离,或者下四分位-1.5倍IQR距离的点为异常值。]
7.Flask官方建议采用工厂模式来创建应用,在实际使用过程中,我们不是在代码中直接创建应用,而是通过调用create_app()方法来返回一个应用对象,这个create_app()就是应用工厂方法。这样采用应用工厂的优点不包含( )
A. 方便获取相同应用的不同配置
B. 实现快速迭代开发的需要
C. 方便创建多个不同配置的实例
D. 实现应用自动测试的需要
答案:B
[采用应用工厂好处主要有两大方面: 1. 在跑自动测试时,每个测试用例都通过应用工厂来获取各自的应用,这样测试用例之前不会互相污染,达到测试每一种不同情况的目的。 2. 方便获取同一应用的多个实例,比如debug版和release版,并根据需要启用,甚至于同时启用创建多个不同配置的实例来服务不同的目的 不包括 B选项 实现快速迭代开发的需要]
8.假设你获取到了2019年内地电影票房前20的电影(列表a)和电影票房数据(列表b),那么Matplotlib中应该如何更加直观的展示该数据?
A. box
B. scatter
C. hist
D. barh
答案:D
[D项水平柱状图。 使用水平柱状图的几种常用场景: √ 对比的指标比较多,垂直柱状图不能很清晰直观地进行展示。 √ 如果强调排名,如重点显示前三名,建议使用水平柱状图。 √ 当维度的文字过长时,使用水平柱状图条理更清晰。]
9.下列关于Matplotlib的辅助线vline与axvlines的描述正确的是( )
A. vline可以不规定ymin和ymax
B. 两者的ymin, ymax属性值的范围在0到1之间
C. axvline中ymin和ymax是做了归一化的
D. axvline可以不设置label
答案:C
[axvline可以不规定 ymin 和 ymax; ymin和ymax属性,axvline中是做了归一化的,辅助线两头纵坐标相对于整个图表的位置,范围在 0 到 1 之间;vline中的ymin,ymax属性是辅助线纵坐标的最小值、最大值; axvline不能增加label]
10.下列关于Pandas中的apply方法说法正确的是()
A. apply 方法是对DataFrame每一个元素应用某个函数的
B. apply 方法能够实现所有aggregate 方法的功能
C. apply方法和map方法都能够进行聚合操作
D. apply 方法只能够对行列进行操作
答案:D
[apply 方法只能够对行列进行操作,若对每一行进行apply,则axis=1。编写好apply应用的函数,注意传进的参数和返回值的类型是单值、Series或DataFrame]
11.在开发API给其他服务使用的场景下,Flask 的蓝图可以将大型应用分解,进行模块化开发,其实际用途不包括( )
A. 扩展请求的URL地址数量
B. 增加服务调用的并发数量
C. 注册蓝图以使用不同的URL规则
D. 提供静态文件、模板和其他工具
[Flask 中蓝图有以下用途: • 把一个应用分解为一套蓝图。 • 在一个应用的 URL 前缀和(或)子域上注册一个蓝图。 URL 前缀和(或)子域的 参数成为蓝图中所有视图的通用视图参数(缺省情况下)。 • 使用不同的 URL 规则在应用中多次注册蓝图。 • 通过蓝图提供模板过滤器、静态文件、模板和其他工具。蓝图不必执行应用或视图 函数。 • 当初始化一个 Flask 扩展时,为以上任意一种用途注册一个蓝图。]
12.怎样解决引入redis产生的缓存穿透问题?
A. 采用布隆过滤器,将所有可能存在的数据哈希到 一个足够大的bitmap中,一个一定不存在的数据 会被 这个bitmap拦截掉,从而避免了对底层存储 系统的查询压力。
B. 使用mutex,在缓存失效的时候使用缓存工具的某些 带成功操作返回值的操作,去set一个mutex key, 当操作返回成功时,再进行load db的操作并回设缓存;否则,就重试整个get缓存的方法。
C. 用加锁或者队列的方式保证来保证不会有大量的线 程对数据库一次性进行读写,从而避免失效时大量 的并发请求落到底层存储系统上。
D. 将缓存失效时间分散开,比如我们可以在原有的失效时间基础 上增加一个随机值,比如1-5分钟随机,这样每一个缓存的过期 时间的重复率就会降低,就很难引发集体失效的事件。
答案:A
[B选项是用来解决缓存击穿,C、D选项是用来解决缓存雪崩]
13.已知x=[1,2]和y=[3,4],那么x+y的结果为
A. [4,6]
B. [1,2,3,4]
C. 10
D. [1,2]
答案:B
[列表中+号的作用是拼接列表]
14.属于网站中常见的反爬虫措施有( )
A. User-Agent
B. Cookie
C. 代理IP
D. 请求头Host、Referer
E. 多账号
答案:ABCDE
[网站为了保护自己的数据不被爬取,都会设置许多反爬措施。其中较为简单的就是检测访问请求头部,如果检测出不是合法的请求头,服务器就不返回数据。请求头headers中常用于设置反爬的参数有User Agent、referer和cookies。 此外获取代理IP和多账号也可以反爬]
15.以下创建集合的语句正确的是
A. set()
B. (1,2,3)
C. set(“123”)
D. frozenset((1,2,3))
[大括号创建集合]
16.网络爬虫技术可以应用在以下哪些方面?( )
A. 搜索引擎
B. 自动过滤广告
C. 数据分析
D. SEO优化
答案:ABCD
[网络爬虫技术可以应用在搜索引擎、自动过滤广告、数据分析、SEO优化等方面。网络爬虫技术的功能十分强大,但在使用时也应遵守相应的规则。]
17.Python中,如何输出列表l中的第二个元素
A. print(l[1])
B. print(l(2))
C. print(l[2])
D. print(l[1:2])
18.Python Web开发中,URLError出现的原因有( )
A. 服务器连接失败
B. 远程url不存在
C. 没有网络连接
D. 触发了HTTPError
[URLError出现的原因有:没有网络连接、服务器连接失败、远程url不存在或触发了HTTPError。]
19.对于Scrapy中的XPath选择器,下列说法正确的是( )
A. 通过extract方法可以取出节点的值
B. 通过text()可以取出节点的内容
C. 通过@href可以取出href属性的值
D. 直接对节点取值,则是输出节点的字符串
[Selector相当于节点,通过xpath去到子节点集合(SelectorList),可以继续搜索,通过extract方法可以取出节点的值,extract方法也可以作用于SelectorList,对于SelectorList可以通过extract_first取出第一个节点的值 通过text()取出节点的内容 通过@href去除节点属性值(这里是取出href属性的值) 直接对节点取值,则是输出节点的字符串]
20.关于装饰模式经典的使用场景,以下正确的是
A. 插入日志
B. 性能测试
C. 事务处理
D. 继承
[插入日志、性能测试、事务处理都可以使用装饰模式]
最后
以上就是闪闪柚子为你收集整理的Python高级能力的全部内容,希望文章能够帮你解决Python高级能力所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复