Python高级能力

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 阿里云大学

1.小明在用python实现文件上传功能时,做了如下操作,其中做法不恰当的是( )

A. 通过黑名单验证上传的文件后缀名称
B. 设置上传目录不可解析
C. 重命名上传的文件名称
D. 使用单独的服务器存放上传的文件
相关知识点: 黑名单是危险易绕过的,可以使用文件后缀名白名单验证和随机文件名称的方式 

2.在构建的Flask应用程序,使用SQLAlchemy中为解决 app上下文的问题:RuntimeError: working outside of request context时的解决方式不正确的是( )

A. db.init_app(app) db.create_all(app=app)
B. db.init_app(app) with app.app_context(): db.create_all()
C. db = SQLAlchemy(app=app)
D. with app.app_context(): db.create_all(app=app)
相关知识点: SQLAlchemy模块不需要立即使用应用的初始化,在app上下文的处理时, 为解决working outside of request context问题,不能用D. with app.app_context(): db.create_all(app=app)的写法。 

3.下列Pandas代码中运行最快的是( ) g = df.groupby('key').value def normalize(x): return (x - x.mean()) / x.std() normalized = (df['value'] - g.transform('mean')) / g.transform('std') (1)normalized (2)g.apply(normalize) (3)g.transform(normalize)

A. (1)
B. (2)
C. (3)
D. 没有区别
相关知识点: 内置的聚合函数,比如mean或sum,通常比apply函数快,也比transform快。

4.以下操作中在寻找爬虫核心链接中是不必要的是( )

A. 浏览器的开发者模式
B. 寻找到network/网络状态监控页面
C. 查看每个url对应的request请求和响应以及参数
D. 另存网页为本地文件
相关知识点: 不需要存到本地 

5.Numpy中能够在[a,b)范围内取一个随机数的表达式是( )

A. b * numpy.random.random() + a
B. b * numpy.random.random() + a + 1
C. (b - a) * numpy.random.random() + a
D. (b - a - 1) * numpy.random.random() + a + 1
相关知识点: 随机生成函数np.random.uniform(low, high, size):可以从一个均匀分布[low,high)中随机采样,定义域是左闭右开。 

6.web开发中,以下做法正确的是( )

A. 后端手机验证码验证通过后,跳转到设置新密码页面,https+post提交用户名、新密码,设置新密码完成密码重置功能
B. 点击重置密码按钮,系统发送一条重置密码的链接到邮箱,格式为:http://www.xxx.com/password/reset?key=1563785498&username=045g6hgd4771h909uiwq5k001923r2p6(其中key是unix时间戳,username是用户名的md5值)
C. 某网站的cookie生成方法为:固定字符串+用户名+时间戳的base64编码
D. 以上都不对
相关知识点: A选项,验证码校验和重置密码是不能分开两步提交的,容易绕过;B的问题主要是无法避免数据篡改,需要增加签名sign=f(param + secret)防止数据被篡改;其次md5加密的用户名并不知道是哪个用户,另外敏感数据应该用https;C项base64可逆,解密之后破解规则,可以伪造登录状,无法避免数据篡改 

7.在提供更多接口给用户使用的时候,有时需要做页面的跳转, 除了自己开发的页面外,还有其他第三方的跳转链接,但可以返回原页面,下列Flask语句可以解决其需要的操作是( )

A. return redirect(url_for('hello'))
B. return Resonse(url_for('hello'))
C. return send_template(url_for('hello'))
D. return redirect ('hello')
相关知识点: 重定向到某一web页面并且可返回,首选redirect的用法,url_for方法简单来说,这个函数接受视图函数的名字(字符串形式)作为参数,返回视图函数对应的url。 

8.以下哪个Scrapy不能实现?

A. 同时在不同的url上爬行
B. 支持shell方式,方便独立调试
C. 通过管道的方式存入数据库
D. 支持分布式
相关知识点: scrapy基于python的爬虫框架,扩展性比较差,不支持分布式 

9.Flask程序报错TemplateNotFound: bootstrap/wtf.html 最可能的原因是()

A. 模板文件夹中wtf.html文件不存在
B. 未进行路由映射
C. ORM扩展未正确安装
D. manage.py文件没有进行实例化  bootstrap = Bootstrap(app)
相关知识点:  因为在manage.py中没有  bootstrap = Bootstrap(app) 

10.判断值在0-10之间的代码,正确的是

A. if num >= 0 and num <= 10:
B. if num >= 0 or num <= 10:
C. if num >= 0 && num <= 10:
D. if num >= 0 || num <= 10:
相关知识点: and表示并且 

11.下列关于Pandas中的apply方法说法正确的是()

A. apply 方法是对DataFrame每一个元素应用某个函数的
B. apply 方法能够实现所有aggregate 方法的功能
C. apply方法和map方法都能够进行聚合操作
D. apply 方法只能够对行列进行操作
相关知识点: apply 方法只能够对行列进行操作,若对每一行进行apply,则axis=1。编写好apply应用的函数,注意传进的参数和返回值的类型是单值、Series或DataFrame 

12.以下关于爬虫中代理服务器,说法正确的是( )

A. 会将数据包原封不动地转发, 在服务端看来就好像真的是一个普通客户端在访问, 而记录的IP 是代理服务器的IPO,这种属于透明代理。
B. 能突破自身IP 访问限制, 访问一些平时不能访问 的站点。
C. 对于爬虫来说,用代理可以隐藏自身IP , 防止自身 被封锁。
D. 通常代理服务器都设置一个较大的硬盘缓冲区,可提高访问速度
相关知识点: A选项属于高度匿名代理 

13.阅读下面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('/') 10. def getGoodsInCatagory(): 11. pass

A. 第3行
B. 第5行
C. 第9行
D. 第10行
相关知识点: 本题考查代码的规范和参数使用在实际项目的易错处, D第10行中的方法中的参数不应该用“<>”, 默认不写或者以元组的形式传入。 

14.myisam与innodb是mysql的存储引擎,下列关于两者的区别说法错误的是( )

A. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务
B. InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败
C. InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高.但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据.因此,主键不应该过大;而MyISAM是聚集索引,数据文件是分离的,索引保存的是数据文件的指针,主键索引和辅助索引是独立的
D. Innodb支持全文索引,而MyISAM不支持全文索引,查询效率上Innodb要高
相关知识点: myisam与innodb是mysql的存储引擎 区别 1.InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务; 2.InnoDB支持外键,而MyISAM不支持.对一个包含外键的InnoDB表转为MYISAM会失败; 3.InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高.但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数 

15.以下创建字典的语句正确的是

A. {}
B. dict([1,2],[3,4])
C. dict(([1,2],[3,4]))
D. {1:2}
相关知识点: 字典结构为key:value 

16.当我们爬取了网页的html文本后需要对原文本进行解析,解析的方法通常有( )

A. 普通文本操作
B. 正则表达式:re
C. Dom树操作:BeautifulSoup
D. XPath选择器:lxml
相关知识点: 爬虫一般只是爬取了网页的html文本,对于爬虫,我们需要明确我们需要爬取的结构化数据,需要对原文本进行解析,解析的方法通常有下面这些 普通文本操作 正则表达式:re Dom树操作:BeautifulSoup XPath选择器:lxml scrapy默认支持选择器的功能,自带的选择器构建与lxml之上,并对其进行了改进,使用起来更为简洁明了 

17.多线程程序中引用互斥锁可以解决哪些问题?

A. 确定了某段代码只能由一个线程从头到尾完整 地执行。
B. 死锁
C. 阻止了多线程的并发执行
D. 全局变量的安全
相关知识点: BC选项根本无法解决,因为就是引用互斥锁才产生的 

18.下面选项中不能在服务器的响应头中查看到的是( )

A. Content-Length
B. cookie
C. Content-Type
D. User-Agent
相关知识点: BD选项是在请求头中才能看到 

19.网络爬虫技术可以应用在以下哪些方面?( )

A. 搜索引擎
B. 自动过滤广告
C. 数据分析
D. SEO优化
相关知识点: 网络爬虫技术可以应用在搜索引擎、自动过滤广告、数据分析、SEO优化等方面。网络爬虫技术的功能十分强大,但在使用时也应遵守相应的规则。 

20.对于Scrapy中的XPath选择器,下列说法正确的是( )

A. 通过extract方法可以取出节点的值
B. 通过text()可以取出节点的内容
C. 通过@href可以取出href属性的值
D. 直接对节点取值,则是输出节点的字符串
相关知识点: Selector相当于节点,通过xpath去到子节点集合(SelectorList),可以继续搜索,通过extract方法可以取出节点的值,extract方法也可以作用于SelectorList,对于SelectorList可以通过extract_first取出第一个节点的值 通过text()取出节点的内容 通过@href去除节点属性值(这里是取出href属性的值) 直接对节点取值,则是输出节点的字符串 
相关文章
|
7月前
|
数据采集 Java C语言
Python面向对象的高级动态可解释型脚本语言简介
Python是一种面向对象的高级动态可解释型脚本语言。
58 3
|
7月前
|
消息中间件 网络协议 网络安全
解锁Python Socket新姿势,进阶篇带你玩转高级网络通信技巧!
【7月更文挑战第26天】掌握Python Socket后,探索网络通信高级技巧。本指南深化Socket编程理解,包括非阻塞I/O以提升并发性能(示例使用`select`),SSL/TLS加密确保数据安全,以及介绍高级网络协议库如HTTP、WebSocket和ZeroMQ,简化复杂应用开发。持续学习,成为网络通信专家!
57 0
|
7月前
|
网络协议 开发者 Python
颠覆传统!Python Socket编程新思维,基础与进阶并重,打造卓越网络能力!
【7月更文挑战第25天】在数字时代,网络通信至关重要,Python的Socket编程简化了这一复杂领域,使初学者也能轻松上手。通过Python的`socket`模块,我们能快速搭建服务器与客户端,实现数据交换。示例代码展示了如何创建、绑定及监听Socket,以及收发消息。掌握基础后,可利用asyncio库探索异步编程,提升通信效率,处理多连接。Python的Socket编程,结合传统与现代技术,助力开发者在网络通信领域取得非凡成就。
94 0
|
7月前
|
机器学习/深度学习 数据采集 算法
Python编程语言进阶学习:深入探索与高级应用
【7月更文挑战第23天】Python的进阶学习是一个不断探索和实践的过程。通过深入学习高级数据结构、面向对象编程、并发编程、性能优化以及在实际项目中的应用,你将能够更加熟练地运用Python解决复杂问题,并在编程道路上走得更远。记住,理论知识只是基础,真正的成长来自于不断的实践和反思。
|
7月前
|
存储 数据处理 开发者
告别繁琐查找!Python高级数据结构Trie树与Suffix Tree,让数据处理更轻松!
【7月更文挑战第19天】Python的Trie树优化字符串搜索,利用前缀减少无效操作,提升效率;Suffix Tree则高效处理后缀问题,尤其适用于文本搜索与生物信息学。虽构建复杂,但能加速后缀查询。掌握这两种数据结构,能有效应对大规模数据挑战,简化处理流程,提升开发效率。
143 0
|
7月前
|
机器学习/深度学习 数据采集 人工智能
Python 是一种广泛使用的高级编程语言
【7月更文挑战第17天】Python 是一种广泛使用的高级编程语言
74 2
|
7月前
|
数据采集 数据挖掘 数据处理
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
【7月更文挑战第14天】Python的Pandas和NumPy库是数据分析的核心工具。Pandas以其高效的数据处理能力,如分组操作和自定义函数应用,简化了数据清洗和转换。NumPy则以其多维数组和广播机制实现快速数值计算。两者协同工作,如在DataFrame与NumPy数组间转换进行预处理,提升了数据分析的效率和精度。掌握这两者的高级功能是提升数据科学技能的关键。**
77 0
|
7月前
|
数据可视化 Linux 数据格式
`seaborn`是一个基于`matplotlib`的Python数据可视化库,它提供了更高级别的接口来绘制有吸引力的和信息丰富的统计图形。`seaborn`的设计目标是使默认图形具有吸引力,同时允许用户通过调整绘图参数来定制图形。
`seaborn`是一个基于`matplotlib`的Python数据可视化库,它提供了更高级别的接口来绘制有吸引力的和信息丰富的统计图形。`seaborn`的设计目标是使默认图形具有吸引力,同时允许用户通过调整绘图参数来定制图形。
|
7月前
|
存储 算法 Python
“解锁Python高级数据结构新姿势:图的表示与遍历,让你的算法思维跃升新高度
【7月更文挑战第13天】Python中的图数据结构用于表示复杂关系,通过节点和边连接。常见的表示方法是邻接矩阵(适合稠密图)和邻接表(适合稀疏图)。图遍历包括DFS(深度优先搜索)和BFS(广度优先搜索):DFS深入探索分支,BFS逐层访问邻居。掌握这些技巧对优化算法和解决实际问题至关重要。**
70 1
|
7月前
|
数据挖掘 数据处理 决策智能
Python 数据分析工具箱:深挖 Pandas 与 NumPy 高级功能,驱动智能决策
【7月更文挑战第12天】Python的Pandas和NumPy是数据分析的基石。Pandas提供灵活的数据结构如DataFrame,用于高效处理关系型数据,而NumPy则以多维数组和科学计算功能著称。两者结合,支持数据合并(如`pd.merge`)、时间序列分析(`pd.to_datetime`)和高级数组运算。通过掌握它们的高级特性,能提升数据分析效率,应用于各领域,如金融风险评估、市场分析和医疗预测,助力数据驱动的决策。学习和熟练运用Pandas与NumPy是成为出色数据分析师的关键。
87 0

热门文章

最新文章

推荐镜像

更多