XX医学院本科各专业《Python》第六章习题与答案
一、选择题
*1. (1,2,3)*3的执行结果是哪个?A
A.(1,2,3,1,2,3,1,2,3) B.(1,2,3)(1,2,3)(1,2,3)
C.(3,6,9) D. 出错
*2.S和T是两个集合,哪个选项对S^T的描述是正确的? D
A. S和T的并运算,包括在集合S和T的所有元素
B. S和T的差运算,包括在集合S但不在T中的元素
C. S和T的交运算,包括同时在集合S和 T中的元素
D. S和T的补运算,包括集合S和T中的非相同元素
*3. S和T是两个集合,哪个选项对S-T的描述是正确的?B
A. S和T的并运算,包括在集合S和T的所有元素
B. S和T的差运算,包括在集合S但不在T中的元素
C. S和T的交运算,包括同时在集合S和 T中的元素
D. S和T的补运算,包括集合S和T中的非相同元素
*4. S是一个集合,哪个选项关于S.pop( )的说法是错误的?B
A. 默认情况下,随机取回集合S中的一个元素
B. 当给定参数时,S.pop(i)取回集合S中序号为i的元素
C. 调用S.pop( )之后,取回的元素将在S中删除
D. 如果S为空,调用S.pop( )之后产生KeyError异常
*5. 对于序列s,哪个选项能够返回序列s中第i到j以k为步长的元素子序列?C
A. s[i,j,k] B. s[i;j;k] C. s[i:j:k] D. s(i,j,k)
*6. 序列s,哪个选项对s.index(x)的描述是正确的?C
A. 返回序列s中序号为x的元素 B.返回序列s中元素x所有出现位置的序号
C.返回序列s中元素x第一次出现的序号 D.返回序列s中x的长度
*7. 元组变量t=(“cat”,”dog”,”tiger”,”human”),哪个选项是t[::-1]的结果?A
A. (‘human’,’tiger’,’dog’,’cat’) [‘human’,’tiger’,’dog’,’cat’]
B.
C.{ ‘human’,’tiger’,’dog’,’cat’} D. 运行出错
*8. 列表ls,哪个选项对ls.append(x)的描述是正确的?B
A. 向ls中增加元素,如果x是一个列表,则可以同时增加多个元素
B. 只能向列表ls最后增加一个元素x
C. 向列表ls最前面增加一个元素x
D. 替换列表ls最后一个元素为x
*9. 列表ls,哪个选项对ls.reverse( )的描述是正确的?B
A. 将ls中元素逆序,返回一个新列表 B. 将ls中元素逆序,更新列表ls
C. 将ls中可以比较的元素进行逆序处理 D. 如果ls为空,则产生一个异常
*10. 哪个选项能够向列表ls中增加五个元素?C
A. ls.append([1,2,3,4,5]) B.ls.append(1,2,3,4,5)
C.ls+=1,2,3,4,5 D. ls.insert(1,2,3,4,5)
*11. 那个选项不能生成一个空字典?D
A.{} B.dict( ) C.dict([ ]) D. {[ ]}
*12. 给定字典d,哪个选项对d.keys( )的描述是正确的?A
A. 返回一种dict_keys类型,包括字典d中所有键
B. 返回一个列表类型,包括字典d中所有键
C.返回一个元组类型,包括字典d中所有键
D. 返回一个集合类型,包括字典d中所有键
*13. 给定字典d,哪个选项对d.values( )的描述是正确的?A
A. 返回一种dict_values类型,包括字典d中所有值
B. 返回一个列表类型,包括字典d中所有值
C. 返回一个元组类型,包括字典d中所有值
D. 返回一个集合类型,包括字典d中所有值
*14. 给定字典d,哪个选项对d.items( )的描述是正确的?A
A. 返回一种dict_items类型,包括字典d中所有键值对
B. 返回一个列表类型,每个元素是一个二元元组,包括字典d中所有键值对
C. 返回一个元组类型,每个元素是一个二元元组,包括字典d中所有键值对
D. 返回一个集合类型,每个元素是一个二元元组,包括字典d中所有键值对
*15. 给定字典d,哪个选项对d.get(x,y )的描述是正确的?B
A. 返回字典d中键值对为x:y的值
B. 返回字典d中键值为x的值,如果不存在,则返回y
C. 返回字典d中键值为x的值,如果不存在,则返回空
D. 返回字典d中键值为y的值,如果不存在,则返回x
*16. 给定字典d,哪个选项对x in d的描述是正确的?B
A. x是一个二元元组,判断x是否是字典d中的键值对
B. 判断x是否是字典d中的键
C. 判断x是否是字典d中的值
D. 判断x是否是在字典d中以键或值方式存在
*17.给定字典d,哪个选项可以清空该字典并保留变量?C
A.d.remove( ) B.d.pop( ) C.d.clear( ) D. del d
*18.以下不能创建一个字典的语句是:A
A. dict1={[1,2,3]:”aksd”}
D. dict1={3:5}
B. dict1={} C.dict1={(1,2,3):”aksd”}
*19.哪个选项是下面代码的输出结果?C
d={‘a’:1,’b’:2,’b’:’3’}
print(d[‘b’])
A. 1 B. 2 C. 3 D. {‘b’:2}
*20. 关于大括号{},以下描述正确的是:C
A. 直接使用{}将生成一个集合类型 B. 直接使用{}将生成一个列表类型
C. 直接使用{}将生成一个字典类型 D. 直接使用{}将生成一个元组类型
21.表达式[1, 2, 3,4]*3的执行结果为(A)。
A.[1, 2, 3, 4,1, 2, 3,4, 1, 2, 3,4] B.[1,2,3,4,1,2,3,4]
C.(1,2,3,1,2,3,1,2,3) D.(1,2,3,1,2,3)
22.列表对象的sort()方法用来对列表元素进行原地排序,该函数返回值为(B)。
A.True B.None
C.False D.1
23.已知 x = [1, 11, 111],那么执行语句 x.sort(key=lambda x: len(str(x)), reverse=True) 之后,x的值为(A)。
A. [111, 11, 1] B.[1,11,111]
C. [11,1,111] D.[111,1,11]
24.x = [1, 2, 3, 2, 3],执行语句 x.pop() 之后,x的值为(C)。 A. [1,2,3] B.[1,2,3,3]
C. [1, 2, 3, 2] D.[2,3,2,3]
25.切片操作list(range(6))[::2]执行结果为(D)
A.[1,2,3] B.[0,1,2]
C.[1,3,5] D.[0, 2, 4]
26.使用切片操作在列表对象x的开始处增加一个元素3的代码为(A)。
A.x[0:0] = [3] B.x[0:0]=3
C.x[0]=3 D.x.append(3)
27.表达式 [x for x in [1,2,3,4,5] if x<3] 的值为(C)。
A.[1] B.[1,2,3]
C. [1, 2] D.[3,4,5]
28.已知 x = [[1,3,3], [2,3,1]],那么表达式 sorted(x, key=lambda item:item[0]+item[2]) 的值为(D)。
A.[1,3,3,2,3,1] B.[2,3,1,1,3,3]
C.[[1,3,3],[2,3,1]] D. [[2, 3, 1], [1, 3, 3]]
29.已知 x = {1:1, 2:2},那么执行语句 x[2] = 4之后,len(x)的值为(A)。
A. 2 B.3
C.1 D.0
30.已知 x = {'a':'b', 'c':'d'},那么表达式 'a' in x 的值为(B)。
A.’a’ B.True
C.False D.’c’
31.已知字典 x = {i:str(i+3) for i in range(3)},那么表达式 sum(item[0] for item in x.items()) 的值为(B)
A. 2 B.3
C.7 D.12
32.已知字典 x = {i:str(i+3) for i in range(3)},那么表达式 ''.join([item[1] for item in x.items()]) 的值为(B)
A. ‘012’ B.’345’
C.’123’ D.’234’
33.已知列表 x = [1, 3, 2],那么执行语句 a, b, c = sorted(x) 之后,b的值为(A)
A. 2 B.3
C.1 D.4
34.表达式 set([1,2, 2,3]) == {1, 2, 3} 的值为(C)
A. 0 B.1
C.True D.False
35.表达式list(str([3, 4])) == [3, 4]的值为(D)
A.0 B.1
C.True D.False
36.表达式sorted({'a':3, 'b':9, 'c':78})的值为(A)
A. ['a', 'b', 'c'] B. ['a', 'b']
C.[3,9,78] D.[3,9]
37.表达式sorted({'a':3, 'b':9, 'c':78}.values())的值为(B)
A. ['a', 'b', 'c'] B. [3, 9, 78]
C.[3,9] D.[‘a’, ’b’]
38.已知x = list(range(20)),那么语句print(x[100:200])的输出结果为(C)
A.[0,1,2] B.[18,19]
C.[] D.[17,18,19]
39.已知x = list(range(20)),那么执行语句x[:18] = []后列表x的值为(D)
A.[17,18,19] B.[17,18]
C.[16,17] D. [18, 19]
40.已知x = [1, 2, 3],那么连续执行y = x和y.append(4)这两条语句之后,x的值为(B)
A. [1,2] B. [1, 2, 3, 4]
C.[1,2,3] D.[1]
二、填空题
*1、两个集合:S1={1,3,5,6},S2={2,5,6},计算S1|S2的值__________、S1&S2的值__________、S1^S2的值__________、S1-S2的值__________。答({1,2,3,5,6},{5,6},{1,2,3},{1,3})
*2、对于字典d={“abc”:1,”qwe”:2,”zxc”:2},len(d)的结果是_____________。答(3)
3、列表ls1=[30,1,2,0],ls2=[1,21,133],比较两个列表___________。答(ls1>ls2)
4、____________是包含0个或多个数据项的不可变序列类型。答(元组)
5、____________是可以修改数据项的序列类型。答(列表)
6、有列表li = ['alex','eric','rain'],计算列表长度并输出的语句是_________。答print(len(li))
7、将字符串 s=\"alex\" 转换成列表_________。答print(list(s))
8、假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到的值是____________。([6, 7, 9, 11])
9、 任意长度的Python列表、元组和字符串中最后一个元素的下标为__。(-1)
10、 表达式 list(range(5)) 的值为______。([0, 1, 2, 3, 4])
11、 ____命令既可以删除列表中的一个元素,也可以删除整个列表。(del)
12、 已知列表对象x = [‘11’, ‘2’, ‘3’],则表达式 max(x) 的值为_。(’3’)
13、字典中多个元素之间使用__分隔开,每个元素的“键”与“值”之间使用__分隔开。(逗号、冒号)
14、 字典对象的___方法返回字典中的“键-值对”列表。(items())
15、 字典对象的__方法返回字典的“键”列表。(keys())
16、 字典对象的____方法返回字典的“值”列表。(values())
17、 已知 x = {1:2},那么执行语句 x[2] = 3之后,x的值为______。({1: 2, 2: 3})
18、 表达式 {1, 2, 3, 4} - {3, 4, 5, 6}的值为________。({1, 2})
19、 表达式set([1, 1, 2, 3])的值为__________。({1, 2, 3})
20、 已知列表 x = [1, 2, 3, 4],那么执行语句 del x[1] 之后x的值为__。([1, 3, 4])
21、 已知列表 x = [1, 2, 3],那么执行语句 x.insert(1, 4) 之后,x的值为_。([1, 4, 2, 3])
22、 已知列表 x = [1, 2, 3],那么执行语句 x.insert(0, 4) 之后,x的值为_。([4, 1, 2, 3])
23、 已知列表 x = [1, 2, 3],那么执行语句 x.pop(0) 之后,x的值为___。([2, 3])
24、 已知 x = {1:2, 2:3},那么表达式 x.get(2, 4) 的值为__。(3)
25、已知 x = {1, 2, 3},那么执行语句 x.add(3) 之后,x的值为____。({1, 2, 3})
26.已知x为非空列表,那么表达式 random.choice(x) in x 的值为___________。(True)
27.已知列表 x = [1, 2],那么连续执行命令 y = x和 y.append(3) 之后,x的值为________。([1, 2, 3])
28.已知列表 x = [1, 2],那么执行语句 x.append([3]) 之后,x的值为_____________。([1, 2, [3]])
29.已知 x = [1, 2, 3, 4, 5],那么执行语句 del x[:3] 之后,x的值为__________。([4, 5])
30.已知列表 x = [1.0, 2.0, 3.0],那么表达式 sum(x)/len(x) 的值为___________。(2.0)
31.表达式 [i for i in range(10) if i>8] 的值为________________。([9])
32.表达式 [5 for i in range(3)] 的值为_______________。([5, 5, 5])
33.表达式 {1, 2, 3} == {1, 3, 2} 的值为___________。(True)
34.已知 x = [1, 2],那么执行语句 x[0:0] = [3, 3]之后,x的值为___________。([3, 3, 1, 2])
35.已知 x = [1, 2],那么执行语句 x[0:1] = [3, 3]之后,x的值为___________。([3, 3, 2])
36.已知 x = [1, 2, 3, 4, 5],那么执行语句 del x[1:3] 之后,x的值为____________。([1, 4, 5])
37.已知 x = {1:2, 2:3, 3:4},那么表达式 sum(x) 的值为___________。(6)
38.已知 x = {1:2, 2:3, 3:4},那么表达式 sum(x.values()) 的值为_________。(9)
39.表达式 [1, 2] + [3] 的值为__________________。([1, 2, 3])
40.已知字典 x = {i:str(i+3) for i in range(3)},那么表达式 ''.join(x.values()) 的值为____________。('345')
三、判断题:
1. 所有的序列数据类型,都可以使用正向递增序号。(对)
2. 列表是序列类型中比较特殊的类型,它一旦创建就不能被修改。(错)
3. 一个元组可以作为另一个元组的元素,可以采用多级索引获取信息。(对)
4. 集合类型中的数据项是有序组合。(错)无序的组合
5. 列表类型是包含0个或多个对象引用的有序序列。(对)
6. * 在字典里,同一个键可以对应两个或多个值。(错)字典里一个键只对应 1 个值。
7. 列表类型可以使用大括号创建,并指定初始值。(错)字典类型
8. 直接使用中括号([])可以创建一个空字典。(错)大括号({})
9. jieba是Python中一个重要的第三方英文分词函数库。(错)中文分词
10. Python之禅介绍了编写好代码的基本原则。(对)
11、列表可以作为字典的“键”。(错)
12、元组可以作为字典的“键”。(对)
13、字典的“键”必须是不可变的。(对)
14、已知x为非空列表,那么x.sort(reverse=True)和x.reverse()的作用是等价的。(错)
15、Python集合可以包含相同的元素。(错)
16、Python字典中的“值”不允许重复。(错)
17、Python集合中的元素可以是列表。(错)
18、Python列表中所有元素必须为相同类型的数据。(错)
19、已知A和B是两个集合,并且表达式AB的值一定为True。(错)
20、列表对象的append()方法属于原地操作,用于在列表尾部追加一个元素。(对)
21、假设有非空列表x,那么x.append(3)、x = x+[3]与x.insert(0,3)在执行时间上基本没有太大区别。(错)
22、使用Python列表的方法insert()为列表插入元素时会改变列表中插入位置之后元素的索引。(对)
23、假设x为列表对象,那么x.pop()和x.pop(-1)的作用是一样的。(对)
24、使用del命令或者列表对象的remove()方法删除列表中元素时会影响列表中部分元素的索引。(对)
25、元组是不可变的,不支持列表对象的inset()、remove()等方法,也不支持del命令删除其中的元素,但可以使用del命令删除整个元组对象。(对)
26、无法删除集合中指定位置的元素,只能删除特定值的元素。(对)
27、当以指定“键”为下标给字典对象赋值时,若该“键”存在则表示修改该“键”对应的“值”,若不存在则表示为字典对象添加一个新的“键-值对”。(对)
28、只能对列表进行切片操作,不能对元组和字符串进行切片操作。(错)
29、删除列表中重复元素最简单的方法是将其转换为集合后再重新转换为列表。(对)
30、可以使用del删除集合中的部分元素。(错)
四、简答题:
1、 列举3个python语言中重要的序列类型。
2、 答:列表、元组、字符串
3、 组合数据类型的分类。
4、 答:序列类型、集合类型、映射类型
5、 简述元组和集合的区别。
6、 答:元组的表现形式是逗号和小括号,集合的表现形式是大括号;元组是元素不可更改的特殊列表,集合是无重复元素的无序组合。
7、 简述列表在实现基本数据同时发挥的重要作用。
8、 答:1)列表是一个动态长度的数据结构,可以根据需求增加或减少元素。2)列表的一系列方法或操作符为计算提供了简单的元素运算手段。3)列表提供了对每个元素的简单访问方式及所有元素的遍历方式。
9、 请列出5条写出优美代码的编程原则。
10、 答:(1) 清晰明了,规范统一; (2) 逻辑简洁,避免复杂逻辑; (3) 接口关系要清晰; (4) 函数功能扁平,避免太多层次嵌套; (5) 间隔要适当,每行代码解决适度问题。
11、 如何在程序中引用jieba库?
12、 答:首先在命令行环境下通过 pip 安装:pip install jieba, 然后使用 import jieba。
五、程序阅读题
1.写出下列程序的运行结果
x=[1,2,3,4,5,6,7,8,9]
for k in range(3):
print(x[3*k],end=' ')
print()
运行结果:1 4 7
2.写出下列程序的运行结果
x=[[1,2,3],[4,5,6],[7,8,9]]
for i in range(3):
for j in range(i+1):
print(x[i][j],end=' ')
print()
运行结果:1
4 5
7 8 9
3.写出下列程序的运行结果
x=[1,2,3,4,5,6]
x.append(7)
del x[2:4]
print(x)
运行结果:[1,2,5,6,7]
4.写出下列程序的运行结果
x=['a','b','c','d','e']
x.pop(2)
x.remove('d')
x.reverse()
print(x)
运行结果:[‘e’,’b’,’a’]
5.写出下列程序的运行结果
D={1:'a',2:'b',3:'c',4:'d',5:'e'}
x=D.get(3)
print(x)
D[4]='abc'
del D[5]
print(D)
运行结果:c
{1:’a’ , 2:’b’ , 3:’c’ , 4:’abc’
}
6.写出下列程序的运行结果
x=[1,2,3,3,4,5]
s=set(x)
x=list(s)
print(x)
运行结果:[1,2,3,4,5]
7.写出下列程序的运行结果
x=[[1,2,3],[4,5,6],[7,8,9]]
for i in range(3):
for j in range(3):
print(x[i][j],end=' ')
print()
运行结果:1 2 3
4 5 6
7 8 9
8.写出下列程序的运行结果
x=[[1,2,3],[4,5,6],[7,8,9]]
for i in range(3):
for k in range(i):
print(' ',end =' ')
for j in range(i,3):
print(x[i][j],end=' ')
print()
运行结果:1 2 3
5 6
9
9.写出下列程序的运行结果
x=[[1,2,3],[4,5,6],[7,8,9]]
for i in range(3):
for j in range(3-i):
print(x[i][j],end=' ')
print()
运行结果:1 2 3
4 5
7
10.写出下列程序的运行结果
x=[[1,2,3],[4,5,6],[7,8,9]]
for i in range(3):
for k in range(2-i):
print(' ',end =' ')
for j in range(2-i,3):
print(x[i][j],end=' ')
print()
运行结果: 3
5 6
7 8 9
六、应用题
*1、字典D={“张三”:88, “李四”:90, “王五”:73, “赵六”:82},写出下列操作的代码。
(1)向字典中添加键值对““钱七”:90”。
(2)修改“王五”对应的值为93。
(3)删除”赵六”对应的键值对。
答:(1) D['钱七'] = 90 (2) D['王五'] = 93 (3) D.pop('赵六')
2、有列表li = ['alex','eric','rain'],按照要求实现每一个功能。
(1)列表中追加元素 “seven”,并输出添加后的列表。
答:li.append(\"seven\")
print(li)
(2)请在列表的第1个位置插入元素 “Tony”,并输出添加后的列表。
答:li.insert(0,\"Tony\")
print(li)
(3)请修改列表第2个位置的元素为 “Kelly”,并输出修改后的列表
答:li[1] = \"Kelly\"
print(li)
(4)请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
答:print(li.pop(1))
print(li)
(5)请将列表所有的元素反转,并输出反转后的列表
答:li.reverse()
print(li)
3、写代码,有如下列表,请按照功能要求实现每一个功能
li=[\"hello\
(1)请输出 “Kelly”
答:print(li[2][1][1])
(2)请使用索引找到 'all'元素并将其修改为 “ALL”
答:li[2][2] = \"ALL\"
print(li)
4、有元组tu=('alex','eric','rain'),按照要求写代码实现每一个功能
(1)计算元组长度并输出
答:print(len(tu))
(2)获取元组的第2个元素,并输出
答:print(tu[1])
(3)请使用 for 输出元组的元素
答:for i in tu:
print(i)
5、列表ls1=[5,7,9], ls2=ls1, 用两种方法写代码,将ls2中的7改为10
(1)答:ls1[1]=10
(2)答:ls2[1]=10
七、程序设计题
1、应用列表完成下列程序设计。输入3个整数,将他们由小到大输出。
list = []
for i in range(3):
x = int(input(\"请输入整数:\"))
list.append(x)
list.sort()
print(list)
2、应用列表完成下列程序设计。输入指定月份,打印该月份所属的季节。
提示: 3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
month = int(input('Month:'))
if month in [3,4,5]:
print('春季')
elif month in [6,7,8]:
print('夏季')
elif month in [9,10,11]:
print('秋季')
else:
print('冬季')
3、编程实现:使用列表将从键盘输入的5个数逆序输出。
ls=[]
for i in range(5):
x=eval(input(\"请输入第\" + str(i+1) + \"个数:\"))
ls.append(x)
ls.reverse()
for i in range(5):
print(ls[i],end=\" \")
4、编程实现:从键盘输入10个数,将其中重复的去掉,再输出
ls=[]
for i in range(10):
x=eval(input(\"请输入第\" + str(i+1) + \"个数:\"))
ls.append(x)
s=set(ls)
ls=list(s)
for i in range(len(ls)):
print(ls[i],end=\" \")
5、编程实现:从键盘输入10个字符串,统计每个字符串的出现次数并输出
ls=[]
for i in range(10):
s=input(\"请输入第\"+str(i+1)+\"个字符串:\")
ls.append(s)
counts = {}
for word in ls:
counts[word] = counts.get(word,0) + 1
items = list(counts.items())
for i in range(len(items)):
word, count = items[i]
print (\"{0:<10}{1:>5}\".format(word, count))
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务