阿里云大学考试python高级题目及解析
1.以上代码输出结果为
python
a =[1,2,3,None,(),[],]
print(len(a))
A.4
B.5
C.6
D.syntax error
C
列表中元素可以存储任意数据类型
2.将字符串s 中的字母a替换为字母,以下代码正确的是
A.s.swap("b","a")
B.s.replace("a","b")
C.s.match("b","a")
D.s.replace("b","a")
B
replace()方法替换,第一个参数为被替换的,第二个参数为替换的值
3.使用range()输出1~9之间的奇数
A.range(1,10,2)
B.range(1,10,1)
C.range(1,9,2)
D.range(1,9,1)
A
从1到10,步长为2
4.以下代码输出结果为
python
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.以下关于爬虫中代理服务器,说法正确的是()
A.会将数据包原封不动地转发,在服务端看来就好像真的是一 个普通客户端在访问,而记录的IP 是代理服务器的IPO,这种属于透明代理。
B.能突破自身IP访问限制,访问一 些平时不能访问 的站点。
C.对于爬虫来说,用代理可以隐藏自身IP,防止自身 被封锁。
D.通常代理服务器都设置一个较大的硬盘缓冲区,可提高访问速度相关知识点:A选项属于高度匿名代理
D
A选项属于高级匿名代理
6.Python3中,"12"+"3"*2 结果是?
A.126
B.18
C.1233
D.null
C
"+"拼接字符串,"*"重复字符串
7.a = 1 b = 2 使用一行代码实现数据交换
A.a,b= b,a
B.a,b=a,b
C.a=b
D.b=a
A
多个赋值时要一 一对应
8.下列代码实现删除列表中重复的值并返回列表,正确的是
A.list2 = list(set(list1))
B.list2 = set(list(it1)
C.list2 = list(list1)
D.list2 = set(list1)
A
集合中没有重复的元素,最后转换为列表
9.使用lambda函数实现两个数相乘,下列代码正确的是
A.sum = lambda a,b:a*b
B.sum = lambda a;a*b
C.sum = lambda a*b
D.sum = lambda a:b:a*b
A
冒号前参数以逗号隔开,冒号后为具体操作
10.下列Pandas代码中运行最快的是()
python
g = df.groupby("key").value
def normalize(x):
return(X-x.mean()/x.std()
normalized =(df['value']-g.transform('mean))/g.transform(stad")
(1)normalized
(2)g.apply(normalize)
(3)g.transform(normalize)
A.(1)
B.(2)
C.(3)
D.没有区别
A
内置的聚合函数,比如mean或sum,通常比apply函数快,也比transform快。
11.web开发中,以下做法正确的是()
A.后端手机验证码验证通过后,跳转到设置新密码页面,https+post提交用户名、新密码,设置新密码完成密码重置功能
B.点击重置密码按钮,系统发送一条重置密码的链接到邮箱,格式为:http://www.xxx.com/passwordreset?key=1563785498&username=045g6hgd4771h909uiwq5k001923r2p6
(其中key是unix时间戳,username是用户名的md5值)
C.某网站的cookie生成方法为:固定字符串+用户名+时间戳的base64编码
D.以上都不对
D
A选项,验证码校验和重置密码是不能分开两步提交的,容易绕过;
B的问题主要是无法避免数据复改,需要增加签名sign=(param + secret)防止数据被复改:其次md5加密的用户名并不知道是哪个用户,另外敏感数据应该用htps;
C项base64可逆,解密之后破解规则,可以伪造登录状,无法避免数据复改
12.阅读 下列Django代码,在横线上填入()后,代码的效率最高
books = Book.objects.fiter(..)
______
do_stuff_with_books(books)
A.if len(books) > 5:
B.if books.count()> 5:
C.if len(Book.oject.ilte.())> 5:
D.三个选项没有区别
B
如果想要知道总共有多少条数据,那么建议使用count,而不是使用len(articles)这种。因为count在底层是使用select count(*)来实现的,这种方式比使用len函数更加的高效:但是Django会缓存查询结果,所以如果后续的操作会用到这些查询出来的数据,可以使用 Python的内置方法(指的是len,if利断queryset,下面例子)。如果不用查询出的数据,使用queryset提供的方法(count(),exists())
13.下列描述属于Numpy中的广播机制的是?(多选)
A.让所有的输人数组都向其中shape最长的数组看齐,shape中不足的部分通过在前面加1补齐
B.输出数组的shape是输人数组shape的各个轴上的最大值
C.如果输人数组的某个轴和输出数组的对应轴的长度相同或者其长度为1,则这个数组能够用来计算,否则出错
D.当输入数组的某个轴的长度为1时,沿着此轴运算时都用此轴上的第1组值
A B C D
numpy的广 播机制为:让所有输入数组都向其中shape最长的数组看齐,shape中不足的部分都通过在前面加1补齐输出数组的shape是输入数组shape的各个轴上的最大值如果输入数组的某个轴和输出数组的对应轴的长度相同或者其长度为1时,这个数组能够用来计算,否则出错,当输入数组的某个轴的长度为1时,沿着此轴运算时都用此轴上的第一组值
14.多线程程序中引用互斥锁可以解决哪些问题?(多选)
A.确定了某段代码只能由一个线程从头到尾完整地执行。
B.死锁
C.阻止了多线程的并发执行
D.全局变量的安全
A D
BC选项根本无法解决,因为就是引用互斥锁才产生的
15.x的y次方以下表达式正确的是?(多选)
A.x^y
B.x**y
C.x^^y
D.pow(x,y)
B D
x**y表示x的y次方 math.pow(x,y)表示x的y次方
16.下列语句在Python中正确的是?(多选)
A.a=(b=C+1)
B.a=b=c=1
C.a+= b
D.a,b= b,a
B C D
变量赋值后才能使用
17.以下创建集合的语句正确的是?(多选)
A.set()
B.(1,2,3)
C.set("123")
D.frozenset((1,2,3))
A C D
大括号创建集合
18.代码a=[1,2,3,4,5],以下输出结果正确的是?(多选)
A.print(a[0:5])=>[1,2,3,4,5]
B.print(a[0:])=>[2,3,4,5]
C.print(a[:100])=>[1,2,3,4,5]
D.print(a[-1:])=>[1,2]
A C
切片默认从0开始,取前不取后
19.以下选项中对WEB开发中API接口的描述正确的是?(多选)
A.通过API接口传递敏感数据时,必须采用https安全协议。
B.必须对API接口提交的参数进行输入校验。
C.如果API接口的调用者的权限各不相同,必须进行鉴权。
D.如果API接口只对特定的IP开放,那么必须对调用接口的客户端IP进行鉴权,只有在IP地址白名单中的客户端才允许调用,IP地址白名单可配置。
A B C D
由于Web API是基于互联网的应用,因此安全性要远比在本地访问数据库的要严格的多,一般通用的做法,是采用几步来保证接口和数据安全:
1.首先一 个是基于CA证书的HTTPS进行数据传输,防止数据被窃听;
2 然后是采用参数加密签名方式传递,对传递的参数,增加一个加密签名,在服务器端验证签名内容,防止被篡改;
3.最后是对一般的接口访问,都需要使用用户身份的token进行校验,只要检查通过才允许访问数据。Web API接口的访问方式,大概可以分为几类:1)使用用户名密码。这种方式比较简单。
20.Python Web开发中,URLError出现的原因有?(多选)
A.服务器连接失败
B.远程urI不存在
C.没有网络连接
D.触发了HTTPError
A B C D
URLError出现的原因有:没有网络连接、服务器连接失败、远程ur不存在或触发了HTTPError。