Python程序设计第四章测验总结

第四章 数据类型和应用

4.1 统计字符的使用频率

1.已知 dict1={1:2},那么执行dict1[2]=3之后dict1的内容是__

A.{2:3}

B.{3:2}

C.{1:2,2:3}

D.{2:1,3:2}

解:C

2.现有dict1={‘a’:2,‘b’:3,‘c’:4},那么len(dict1)的值是____

A.0

B.3

C.6

D.1

解:B

3.Python 3 解释器执行 for x in {‘a’:‘b’, ‘c’:‘d’}: print(x)的结果是什么

A.b c

B.a c

C.b d

D.a b

解:B

输出键。

4.字典对象的__方法可以获取指定“键”对应的“值”

A.get()

B.items()

C.keys()

D.values()

解:A

5.字典对象的__方法可以返回字典中的“键-值对”列表

A.get()

B.items()

C.keys()

D.values()

解:B

6.字典对象的__方法可以返回字典的“键”列表

A.get()

B.items()

C.keys()

D.values()

解:C

7.字典对象的__方法可以返回字典的“值”列表

A.get()

B.items()

C.keys()

D.values()

解:D

8.字典的键可以是字符串常量也可以是整型常量,甚至还可以是列表。

解:错误

9.如果一个字典中存在一个‘a’为健,那么就不可以再有’A’的键。

解:错误

10.字典的键必须唯一,而值可以不唯一。

解:正确

11.字典是可变(不可哈希)数据类型。

解:正确

12.合并两个字典可以直接和列表一样,用“+”号进行操作。

解:错误

4.2 利用正则表达式提取电话号码

1.下面不能严格匹配YYYY-MM-DD这样日期格式的正则表达式是______

A.\d{4}-\d{2}-\d{2}

B.[0-9]-[0-9]-[0-9]

C.[0-9]{4}-[0-9]{2}-[0-9]{2}

D.[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]

解:B

2.正则表达式的元字符_____用于表示此字符之前的字符或者子模式出现0次或者多次。

A.+

B.^

C.*

D.|

解:C

3.使用正则表达式之前必须先用re的compile方法编译。

解:粗欧文

4.不使用元字符的正则表达式只能匹配字符自己。

解:正确

5.[^ab]可以匹配除’a’和‘b’之外的任何字符。

解:正确

6.正则表达式元字符"\s"用来匹配任意空白字符

解:正确

7.正则表达式元字符"\d"用来匹配任意数字字符

解:正确

8.正则表达式’python|perl’或’p(ython|erl)'都可以匹配’python’或’perl’

解:正确

9.正则表达式’^http’能成功匹配所有含有"http"字段的字符串

解:错误

10.正则表达式’\d{5}'可用来检查字符串是否为5个数字字符组成的字符串

解:错误

11.以下实例运行输出结果为:

import re 
print(re.search('nlp','su zhou nlp').span())

解:(8,11) 或(8, 11)

span()函数返回起始位置和终止位置组成的元组,不包括终止位置的字符。

12.以下实例运行输出结果为:

import re 
phone = '1949-10-01' 
num = re.sub(r'\D',"",phone) 
print(num)

解:19491001 或’19491001’ 或"19491001"

sub(repl, string[, count])或re.sub(pattern, repl, string[, count])使用repl替换string中每一个匹配的子串后返回替换后的字符串。

4.3 列表与复杂排序

1.现有如下代码,排序后lst的结果是_____

lst=[25,77,48] 
lst.sort(key=lambda temp:temp%10,reverse=True)

A.[25,77,48]

B.[48,77,25]

C.[25,48,77]

D.[77,48,25]

解:B

2.如下代码的运行结果是____

lst1=[25,77,48] 
lst2=lst1 
lst1.sort()
print(lst2)

A.[25,77,48]

B.[77,48,25]

C.[77,25,48]

D.[25,48,77]

解:D

sort函数更改原数组

3.如下代码的运行结果是_____

lst1=[25,77,48] 
lst2=lst1 
sorted(lst1) 
print(lst2)

A.[25,77,48]

B.[25,48,77]

C.[77,48,25]

D.[48,77,25]

解:A

sorted函数不更改原数组

4.下列程序执行后,p的值是

a = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] 
p = 1 
for i in range(len(a)):   
	p*=a[i][i]

A.45

B.15

C.6

D.28

解:A

5.下列Python程序运行结果是()

s = [1, 2, 3, 4] 
s.append([5, 6]) 
print(len(s))

A.2

B.4

C.5

D.6

解:C

追加了一个列表元素,所以长度为4+1=5。

6.下列Python程序运行结果是()

s1 = [4, 5, 6] 
s2 = s1 
s1[1] = 0 
print(s2)

A.[4, 5, 6]

B.[4, 0, 6]

C.[0, 5, 6]

D.[4, 5, 0]

解:B

7.sorted函数的第一个参数不仅可以是列表,也可以是元组。

解:正确

8.python内置的sorted函数和列表的sort方法都属于稳定的排序。

解:正确

9.执行代码x, y, z = sorted([1, 3, 2])之后,变量y的值为__

解:2

10.已知 f = lambda x:5 ,那么表达式f(3)的值为__

解:5

11.以下实例的输出结果是:

tags=[[1,1,1],[2,2,2]] unique_tags=[tag for list in tags for tag in list]print(unique_tags)

解:[1,1,1,2,2,2] 或[1, 1, 1, 2, 2, 2]

12.以下实例的输出结果是:

NUM=lambda x,y : (x>y)*x + (x<y)*y if __name__ = '__main__':   	a = 10      b = 20       print(NUM(a,b))

解:20

4.4 二分检索

1.用二分法与列表进行检索时,因为列表是可枚举对象,因此用for循环实现二分检索比while循环方便、易懂。

解:错误

2.对Python的字典的key使用二分检索,将会加快字典获取对应项的速度。

解:错误

3.表达式[3] in [1, 2, 3, 4]的值为True

解:错误

4.已知列表x = [1, 2],执行语句y = x 后,表达式 id(x) == id(y)的值为True

解:正确

5.已知列表x = [1, 2],那么执行语句 x.extend([3])之后,x的值为[1, 2, 3]

解:正确

6.Python列表中所有元素必须为相同类型的数据

解:错误

7.假设x为列表对象,那么x.pop()和x.pop(-1)的作用是一样的

解:正确

8.二分查找最坏的时间复杂度是O(log2n),最优时间复杂度是O(1)。

解:正确

9.如果需要对一个无序的列表进行二分检索,首先需要对列表进行____。

解:排序

10.现有一个列表lst=[12,27,38,149,2356,89777],假设需要检索的数值一定存在lst中,那么最少循环次。

解:1

11.现有一个列表lst=[4,12,27,38,149,2356,89777],假设需要检索的数值一定存在lst中,那么最多循环次。

解:3

12.以下实例的输出结果是:

list = ['suzhou', 'shanghai', 'hangzhou'] list_pop = list.pop(-2)print(list_pop)

解:shanghai 或’shanghai’ 或"shanghai"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值