阿里云技能测试python初级中级高级

简介

偶尔发现,阿里云-开发者社区,里竟然有技能测试平台
覆盖知识面也较多

初级(65)

涉及知识点:Python语言的基本特性、编程环境、语法基础、数据结构,了解Python的网络编程与Web开发,常用开发框架的基本特性,以及Python爬虫的基础。
成绩:65(https://developer.aliyun.com/exam/result/974324)
错题和原因:
2.查看当前系统Python版本,下列命令正确的是

1
2
3
4
5
6
7
8
9
A. python –v  
B. python –V
C. python –version
D. python –Version
```
选择A,这个自己使用过,好像是A没错,
答案B,

4.下列选项中,可将轴去掉的Matplotlib方法是( )

A. label
B. ticks
C. grid
D. axis

1
2
3
4
5
选择:c,记得grid是将离散轴数据切分为子图的形式,所有就选择c  
答案:D
去掉坐标轴的方法:plt.axis('off')

9.range() 函数返回的是

A. 一个可迭代对象(类型是对象)
B. 列表类型
C. 元祖
D. 数组

1
2
3
4
选择B,原因是感觉A,旧版Python不对(后来想想也没错,list也是可迭代对象),B,D都感觉对的,选择了B  
答案A:py3.x是A,别忘了这是单选题,A包含了BD的情况

13.数据分析经常用的package中,能让你使用数学函数高效处理庞大的多维数组和矩阵的是( )

A. NumPy
B. Pandas
C. Matplotlib
D. Scipy

1
2
3
4
选择:B,原因:个人使用最多,没做深入思考就选了,稍微思考就知道强调的是”数学”和“矩阵”,不止是“多维数组”  
答案:D

14.Flask中关于cookie的使用错误的是()

A. response.set_cookie(key,value)
B. request.cookies.get(key)
C. response.delete_cookie(key)
D. request.cookies.pop(key)

1
2
3
4
选择C:原因:不大记得了,好久不用flask了,瞎蒙的  
答案:D

15.Python Web开发中,requests使用如下哪个语句可以获取来自服务器的原始套接字响应?

A. r.content
B. r.raw
C. r.contents
D. r.socket

1
2
3
4
选择D,原因:看到套接字就选择了socket,自己的确很少用到原始套接字响应,  
答案:B

17.下列属于Python序列类型的是

A. 列表
B. 字典
C. 元组
D. 字符串

1
2
3
4
5
6
7
8
9
10
11
选择:A  
答案::ACD
Python的序列类型:列表(list),元组(tuple),字符串(str), 字节数组(bytes),队列(deque)

总结:非常基础,但容易忽略的细节知识点,比如flask的cookie是没有pop的(实际上pop是session的方法),很容易混淆的知识点。

## 中级(65)
涉及知识点:深度理解Python语法与数据类型,掌握运算符、控制语句、列表、元组。理解Flask、Django原理、构建方法,Python爬虫技术与常用工具进行数据收集。(相比初级多了django,Scrapy,正则表达式等)
分数:35(部分题目答案错误,部分题目选项乱码,只能蒙了),第二次测试通过65(https://developer.aliyun.com/exam/result/975293)
错题和原因:
单选 1.WEB开发中,关于get和post的说法不正确的是( )

A. get请求无消息体,只能携带少量数据;post请求有消息体,可以携带大量数据。
B. get请求将数据放在url地址中;post请求将数据放在消息体中。
C. GET方式提交的数据最多只能有512字节,而POST则可以有1024。
D. GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中。

1
2
3
4
5
相关知识点: GET方式提交的数据最多只能有1024字节,而POST则没有此限制。  
选择:C,官方判错误,但尴尬的是题目下方的知识提示中就有:“GET方式提交的数据最多只能有1024字节,而POST则没有此限制。”
答案:不明,感觉官方判错了,都这样了,C难道还能是对的么?

7.以下关于Matplotlib绘图标准流程说法错误的是()

A. 绘制最简单的图形可以不用创建画布
B. 添加图例可以在绘制图形之前
C. 添加x轴、y轴的标签可以在绘制图形之前
D. 修改x轴标签、y轴标签和绘制图形没有先后

1
2
3
4
5
相关知识点: 在绘制图形之前不可以添加图例  
选择D:画图倒是用过,但没注意过图例,画布等东西,印象里直接Plot+show就ok了,细节不清楚
答案:B

9.Python中计算6*6*6*6写法错误的是

A. 666*6
B. pow(6,4)
C. 60000
D. 6x6x6x6

1
2
3
4
5
6
7
选择:C,第一眼就是C不对,后来看发现D也不大对,X又不是乘号,  
答案:不清楚,既然官方判错了,难道C是对的?

10.有Django model定义如下:
class Question(models.Model):
pub_date = models.DateTimeField()
则以下选项中哪个命令能够查询出pub_date发布时间为2020年3月之后(包含3月)的数据?( )

A. Question.objects.filter(pub_date__gte=’2020-3-1’)
B. Question.objects.filter(pub_date__year=2020, pub_date__month__gt=3)
C. Question.objects.filter(pub_date__year=2020, pub_date__month>=3)
D. Question.objects.filter(pub_date__year=2020, pub_date__month>3)

1
2
3
4
选择C,有段时间不写django了,不大记得了。在AC间犹豫,选了C  
答案:A

11.下面代码的运行结果是()

import numpy as np
a = np.arange(12).reshape((3,4))
print(a.mean())

1
 

A. 23
B. 16.5
C. 5.5
D. [1.5, 5.5, 9.5]

1
2
3
4
选了D,a为3行4列,所以结果肯定不是一个数,而是list数据  
答案:C,应该是自己记错了

13.Flask中应用上下文和请求上下文的描述不正确的是 ()

A. session、request 都是请求上下文
B. 应用上下文作用是保存程序运行过程中的配置
C. 应用上下文在request消失后也存在
D. 请求上下文保存了客户端和服务器交互的数据

1
2
3
4
5
相关知识点: 作用主要是帮助 request 获取当前的应用,它是伴 request 而生,随 request 而灭的  
选择A:感觉session一直存在的,不过请求来了才会查询出使用而已。
答案:猜测C

14.前后端交互时, Flask框架在对请求的处理时,如何确认安全性( )

A. 通过加密请求的header来实现
B. 通过加密请求的session来实现
C. 通过加密请求的cookie来实现
D. 通过加密请求的body来实现

1
2
3
4
5
相关知识点: 为确认Flask请求的安全性, flask框架通过加密session来实现, 而session是基于cookie的会话保持。Flask的默认session利用了Werkzeug的SecureCookie,把信息做序列化(pickle)后编码(base64),放到cookie里了。  
选择:D
答案:B

15.关于Python中Json模块中的常用函数,下列描述正确的是( )

A. json.load()用于将dict类型的数据转成str
B. json.dumps()用于将str类型的数据转成dict
C. json.dump()用于将dict类型的数据转成str,并写入到json文件中
D. json.loads()用于从json文件中读取数据

1
2
3
4
5
相关知识点:  json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。  
选择:D,这个用的还比较多,loads加载入,dumps写出
答案:C,记错了,是load和dump,没有s,大多都是自动提示,没太留意这些

16.下列选项中,能够通过Matplotlib中的hist()函数绘制的是( )

A.
B.
C.
D.

1
2
3
4
相关知识点: hist()绘制的是直方图,A是散点图用scatter;C项是折线图plot;D项是堆叠条形图用bar  
题目有问题,

17.下列关于Scrapy类常用的属性和方法说法正确的是( )

A. name属性设置爬虫的名字,必须唯一;如果在控制台使用的话,必须配置
B. custom_settings,会覆盖settings.py中的默认配置
C. start_requests会启动爬虫的时候调用,重写该方法后,不要设置start_urls,否则start_requests方法不会被调用
D. parse方法会在response到达spider的时候默认调用,如果在Request对象配置了callback函数,则不会调用

1
2
3
4
5
相关知识点: start_requests:启动爬虫的时候调用,默认是调用make_requests_from_url方法爬取start_urls的链接,可以在这个方法里面定制,如果重写了该方法,start_urls默认将不会被使用,可以在这个方法里面定制一些自定义的url,如登录,从数据库读取url等,本方法返回Request对象  
选择:AB,官方判错
答案:不清楚。

18.下列正则表达式语法说法正确的是( )

A. o{1,}等价于o+
B. o{0,}等价于o*
C. o{0,1}等价于o?
D. 以上都不对

1
2
3
4
5
相关知识点: *:匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。 +:匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。 ?:匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 、 "does" 中的 "does" 、 "doxy" 中的 "do" 。? 等价于 {0,1}。 {n,}:n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的  
选择:ABC官方判错,感觉官方判断错了
答案:不明

19.Scrapy的回调函数中,解析response并且返回值,则返回值可能是( )

A. 包含解析数据的字典
B. Item对象
C. 新的Request对象
D. 可迭代对象(Items或Request)

1
2
3
4
5
6
相关知识点: 在回调函数中,解析response并返回返回值 返回值有四种: 1- 包含解析数据的字典 2- Item对象 3- 新的Request对象(新的Requests也需要制定一个回调函数) 4- 可迭代对象(包含Items或Request)  

选择:AD,老早前用过,早就忘了,蒙的
答案:ABCD

多选 20.以下哪个代码是不正确的元组

A. (1,2,3,4,5)
B. {1,2,3,4,5}
C. [1,2,3,4,5]
D. /1,2,3,4,5/

1
2
3
4
5
6
7
8
9
选择:AD,A显然是,D是因为开头结尾/个人认为是“笔误”了,实际1,2,3,4,5会自动pack为元组,B是set,C是list  
答案:官方判定AD错,所以应该是A吧


## 高级(70)
涉及知识点:熟练掌握Python的语法知识与编程技能,具备Python语言的函数、面向对象、异常处理等能力,具备使用Python数据分析工具能力,掌握利用Python语言从数据采集到分析全流程知识
成绩:70(https://developer.aliyun.com/exam/result/974528)
错题和原因:
3.在实际接口处理中,可能出现某个任务调用第三方应用,返回时间不定,而此时又需要有明确的返回信息, 通过Flask快速返回给调用方。 Flask请求的线程化处理对某些异步任务的执行来说是种有效的解决方案, 以下第三方扩展中, 有参考此原理的是( )

A. Asyncio
B. Celery
C. Threading
D. Twisted

1
2
3
4
5
相关知识点: 此题有涉及异步处理请求和多线程的方式解决问题, 但主要是考查对一些常用package的实现原理分析,线程化首选threading,asyncio和twisted都是异步处理的框架, celery是任务队列化的管理与实现, 不符合题意。  
选择A,文中提到异步,且,最有效。所以个人感觉是asyn的协程
答案C,线程也不错,毕竟携程也是线程,不过应该说不上最有效吧(python而言,多进程一般更佳),感觉答案不合理

8.下列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. 没有区别

1
2
3
4
5
相关知识点: 内置的聚合函数,比如mean或sum,通常比apply函数快,也比transform快。  
选择:C,之前大概了解过,transform有时比apply快,就选C了
答案:A

12.下列关于防火墙的描述不正确的是( )

A. 防火墙不能解决来自内部网络的攻击和安全问题
B. 防火墙可以防止伪装成内部信任主机的IP地址欺骗。
C. 防火墙的部署方式有透明模式、路由模式、交换模式、混合模式
D. 对于防火墙而言,除非特殊定义,否则全部ICMP消息包将被禁止 通过防火墙(即不能使用ping命令来检验网络连接是否建立)

1
2
3
4
5
相关知识点: 防火墙的部署方式有透明模式、路由模式、混合模式。不包含交换模式。  
选择B
答案C

13.爬虫中对于ajax的请求处理描述不正确的是( )

A. 比普通网页更容易
B. 需要寻找到正确的请求入口
C. 需要借助js模拟器点击
D. 入口不能进行直接爬行

1
2
3
4
5
相关知识点: 模拟Ajax请求 这时需要通过Chrome等浏览器的开发者工具,利用Chrome开发者工具的筛选功能筛选出所有的Ajax请求。选择network选项,直接点击XHR分析网页后台向接口发送的Ajax请求,用requests来模拟Ajax请求,那么就可以成功抓取信息了 可以不借助js模拟点击  
选择:A,个人理解的是爬虫爬,取网页,网页部分内容通过ajax填充,所以比普通网页更难(需要爬虫就有执行js的功能,普通网页爬虫只需要能download网页即可)
答案:C,根据答案提示来看,题目意思是已知ajax接口了,针对ajax接口进行爬取,所以只需要request即可。

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

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

1
2
3
4
5
相关知识点: 不需要存到本地  
选择:C
答案:D

20.Python Web开发中,URLError出现的原因有( )

A. 服务器连接失败
B. 远程url不存在
C. 没有网络连接
D. 触发了HTTPError

相关知识点: URLError出现的原因有:没有网络连接、服务器连接失败、远程url不存在或触发了HTTPError。  
选择BC,  
答案:ABCD  

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×