内容正文:
《程序设计基础-Python》高等教育出版社
第4单元 组合数据类型
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共25小题,每题2分,共50分)
1. 在Python中,用于创建元组的符号是( )
A. [] B. {}
C. () D. <>
2. 下列代码的输出结果是( )
t1 = (1, 2, 3)
print(t1[1])
A. 1 B. 2
C. 3 D. t1
3. 关于Python中的列表,下列说法正确的是( )
A. 列表创建后不可修改
B. 列表使用圆括号包裹
C. 列表是可变序列
D. 列表元素必须是相同类型
4. 执行代码 `print(len([1, 2, [3, 4], 5]))` 的输出结果是( )
A. 4 B. 5
C. 6 D. 7
5. 下列方法中,用于在列表末尾添加元素的是( )
A. insert() B. append()
C. extend() D. add()
6. 下列代码的输出结果是( )
s1 = {1, 2, 3, 2, 1}
print(len(s1))
A. 5 B. 6
C. 2 D. 3
7. 想要创建空集合,应使用的方法是( )
A. {} B. set()
C. [] D. ()
8. 下列代码的输出结果是( )
d1 = {"name": "小明", "age": 18}
print(d1.get("name"))
A. name B. 小明
C. 18 D. age
9. 下列集合运算中,表示交集的是( )
A. | B. -
C. & D. *
10. 在字典中,下列说法正确的是( )
A. 键可以重复 B. 键必须是可变类型
C. 值必须唯一 D. 键必须是不可变类型
11. 下列代码的输出结果是( )
list1 = [1, 2, 3]
list1.append([4, 5])
print(len(list1))
A. 3 B. list1
C. 5 D. 4
12. 执行代码 `print((1, 2) + (3, 4))` 的输出结果是( )
A. (1, 2, 3, 4) B. (4, 6)
C. [1, 2, 3, 4] D. 10
13. 下列代码中,能正确删除列表中第一个值为"4"的元素的是( )
A. list1.pop("4") B. list1.remove("4")
C. list1.delete("4") D. list1.pop(4)
14. 关于集合,下列说法正确的是( )
A. 集合元素有序
B. 集合可以有重复元素
C. 集合可以通过索引访问
D. 集合元素无序且唯一
15. 下列代码的输出结果是( )
d1 = {"a": 1, "b": 2}
d1["c"] = 3
print(len(d1))
A. 2 B. 3
C. 4 D. 5
16. 下列列表中,排序后结果为降序的是( )
A. list1.sort()
B. sorted(list1)
C. list1.sort(reverse=True)
D. list1.reverse()
17. 执行代码 `print(list(range(3)))` 的输出结果是( )
A. [0,1,2] B. [1,2,3]
C. [0,1,2,3] D. [1,2]
18. 下列代码的输出结果是( )
t1 = (1, 2, 3, 4, 5)
print(t1[1:4])
A. (1, 2, 3) B. (2, 3, 4)
C. (2, 3, 4, 5) D. 报错
19. 在Python中,用于获取字典所有键的方法是( )
A. values() B. items()
C. get() D. keys()
20. 下列代码的输出结果是( )
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set2)
A. {3} B. {1, 2, 4, 5}
C. {1, 2, 3, 4, 5} D. {1, 2, 3}
21. 下列嵌套列表中,获取元素5的正确方式是( )
list1 = [1, 2, [3, 4, [5, 6]], 7]
A. list1[2][2] B. list1[2][2][0]
C. list1[3][2] D. list1[2][3]
22. 下列代码的输出结果是( )
d1 = {"a": 1, "b": 2}
print(d1.get("c", 0))
A. None B. 0
C. c D. False
23. 关于列表推导式,下列代码正确的是( )
A. [x for x in range(5)] B. [x in range(5)]
C. [for x in range(5)] D. [x range(5)]
24. 下列代码的输出结果是( )
list1 = [1, 2, 3]
list2 = list1
list1.append(4)
print(list2)
A. [4] B. [1, 2, 3]
C. [1, 2, 3, 4] D. 1, 2,3, 4
25. 执行代码 `print({1, 2, 3} - {2, 3, 4})` 的输出结果是( )
A. {1} B. {4}
C. {1, 4} D. {}
二、判断题(共10题,每题1分,共10分)
1. Python中元组创建后不可以修改元素。( )
2. 在Python中,{}可以创建空集合。( )
3. 列表的索引可以从负数开始。( )
4. 字典的键可以是列表类型。( )
5. 集合中的元素可以重复。( )
6. list.sort()方法会返回排序后的新列表。( )
7. 字典中同一个键可以出现多次。( )
8. 元组可以使用append()方法添加元素。( )
9. 列表推导式可以包含if条件表达式。( )
10. 在Python中,0、空字符串、None转换为布尔值时为False。( )
3、 名词解释题(共4题,每题3分,共12分)
1. 元组
2. 列表
3. 集合
4. 字典
四、简答题(共4题,每题4分,共16分)
1. 请简述列表和元组的主要区别。
2. 请说明集合的交、并、差集运算及对应运算符。
3. 请列举字典的常用操作方法及其功能。(至少写4种)
4. 请说明list.sort()和sorted()的区别。
五、编程题(本题共1小题,每题12分,共12分)
编写程序,实现学生信息管理功能:
1. 创建一个字典存储3个学生的信息(学信信息至少要包括:学号、姓名、成绩)(3分)
2. 使用列表存储这3个学生字典,遍历列表输出所有学生信息(4分)
3.输入一个学生姓名,查找并输出该学生的学号和成绩;若不存在,输出“未找到该学生”(5分)
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
《程序设计基础-Python》高等教育出版社
第4单元 组合数据类型
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共25小题,每题2分,共50分)
1. 在Python中,用于创建元组的符号是( )
A. [] B. {}
C. () D. <>
【答案】:C
【解析】: 元组使用圆括号()创建,列表使用方括号[],字典和集合使用花括号{}。
2. 下列代码的输出结果是( )
t1 = (1, 2, 3)
print(t1[1])
A. 1 B. 2
C. 3 D. t1
【答案】:B
【解析】: 元组索引从0开始,t1[1]获取第二个元素2。
3. 关于Python中的列表,下列说法正确的是( )
A. 列表创建后不可修改
B. 列表使用圆括号包裹
C. 列表是可变序列
D. 列表元素必须是相同类型
【答案】:C
【解析】: 列表是可变序列,可以添加、修改、删除元素,使用方括号[]包裹,元素可以是任意类型。
4. 执行代码 `print(len([1, 2, [3, 4], 5]))` 的输出结果是( )
A. 4 B. 5
C. 6 D. 7
【答案】:A
【解析】: 列表中有4个元素,[3,4]作为一个整体元素计算。
5. 下列方法中,用于在列表末尾添加元素的是( )
A. insert() B. append()
C. extend() D. add()
【答案】:B
【解析】: append()在列表末尾添加单个元素,insert()在指定位置添加,extend()添加多个元素。
6. 下列代码的输出结果是( )
s1 = {1, 2, 3, 2, 1}
print(len(s1))
A. 5 B. 6
C. 2 D. 3
【答案】:D
【解析】: 集合具有互异性,重复元素只保留一个,所以{1,2,3,2,1}实际为{1,2,3}。
7. 想要创建空集合,应使用的方法是( )
A. {} B. set()
C. [] D. ()
【答案】:B
【解析】: {}创建的是空字典,set()创建空集合。
8. 下列代码的输出结果是( )
d1 = {"name": "小明", "age": 18}
print(d1.get("name"))
A. name B. 小明
C. 18 D. age
【答案】:B
【解析】: get()方法根据键获取对应的值,d1["name"]的值为"小明"。
9. 下列集合运算中,表示交集的是( )
A. | B. -
C. & D. *
【答案】:C
【解析】: &表示交集,|表示并集,-表示差集。
10. 在字典中,下列说法正确的是( )
A. 键可以重复 B. 键必须是可变类型
C. 值必须唯一 D. 键必须是不可变类型
【答案】:D
【解析】: 字典的键必须唯一且为不可变类型,值可以重复且可以是任意类型。
11. 下列代码的输出结果是( )
list1 = [1, 2, 3]
list1.append([4, 5])
print(len(list1))
A. 3 B. list1
C. 5 D. 4
【答案】:D
【解析】: append()添加一个元素,[4,5]作为一个整体元素,列表变为[1,2,3,[4,5]],长度为4。
12. 执行代码 `print((1, 2) + (3, 4))` 的输出结果是( )
A. (1, 2, 3, 4) B. (4, 6)
C. [1, 2, 3, 4] D. 10
【答案】:A
【解析】: 元组使用+进行连接运算,结果为(1, 2, 3, 4)。
13. 下列代码中,能正确删除列表中第一个值为"4"的元素的是( )
A. list1.pop("4") B. list1.remove("4")
C. list1.delete("4") D. list1.pop(4)
【答案】:B
【解析】: remove()根据元素值删除,pop()根据索引删除。
14. 关于集合,下列说法正确的是( )
A. 集合元素有序
B. 集合可以有重复元素
C. 集合可以通过索引访问
D. 集合元素无序且唯一
【答案】:D
【解析】: 集合具有无序性、确定性和互异性,不能通过索引访问。
15. 下列代码的输出结果是( )
d1 = {"a": 1, "b": 2}
d1["c"] = 3
print(len(d1))
A. 2 B. 3
C. 4 D. 5
【答案】:B
【解析】: 字典添加了一个键值对,现在有3个键值对。
16. 下列列表中,排序后结果为降序的是( )
A. list1.sort()
B. sorted(list1)
C. list1.sort(reverse=True)
D. list1.reverse()
【答案】:C
【解析】: sort(reverse=True)实现降序排序,reverse=True表示降序。
17. 执行代码 `print(list(range(3)))` 的输出结果是( )
A. [0,1,2] B. [1,2,3]
C. [0,1,2,3] D. [1,2]
【答案】:A
【解析】: range(3)生成0、1、2,转换为列表为[0,1,2]。
18. 下列代码的输出结果是( )
t1 = (1, 2, 3, 4, 5)
print(t1[1:4])
A. (1, 2, 3) B. (2, 3, 4)
C. (2, 3, 4, 5) D. 报错
【答案】:B
【解析】: 切片[1:4]获取索引1到3的元素,不包含索引4,结果为(2, 3, 4)。
19. 在Python中,用于获取字典所有键的方法是( )
A. values() B. items()
C. get() D. keys()
【答案】:D
【解析】:keys()获取所有键,values()获取所有值,items()获取所有键值对。
20. 下列代码的输出结果是( )
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set2)
A. {3} B. {1, 2, 4, 5}
C. {1, 2, 3, 4, 5} D. {1, 2, 3}
【答案】:C
【解析】: |表示并集运算,合并两个集合的所有元素。
21. 下列嵌套列表中,获取元素5的正确方式是( )
list1 = [1, 2, [3, 4, [5, 6]], 7]
A. list1[2][2] B. list1[2][2][0]
C. list1[3][2] D. list1[2][3]
【答案】:B
【解析】: list1[2]是[3,4,[5,6]],list1[2][2]是[5,6],list1[2][2][0]是5。
22. 下列代码的输出结果是( )
d1 = {"a": 1, "b": 2}
print(d1.get("c", 0))
A. None B. 0
C. c D. False
【答案】:B
【解析】: get()方法第二个参数是默认值,键"c"不存在时返回默认值0。
23. 关于列表推导式,下列代码正确的是( )
A. [x for x in range(5)] B. [x in range(5)]
C. [for x in range(5)] D. [x range(5)]
【答案】:A
【解析】: 列表推导式语法为[表达式 for 变量 in 序列]。
24. 下列代码的输出结果是( )
list1 = [1, 2, 3]
list2 = list1
list1.append(4)
print(list2)
A. [4] B. [1, 2, 3]
C. [1, 2, 3, 4] D. 1, 2,3, 4
【答案】:C
【解析】: list2 = list1是引用赋值,两个变量指向同一列表,修改list1会影响list2。
25. 执行代码 `print({1, 2, 3} - {2, 3, 4})` 的输出结果是( )
A. {1} B. {4}
C. {1, 4} D. {}
【答案】:A
【解析】: -表示差集,{1,2,3}-{2,3,4}结果为{1},即在前者中但不在后者中的元素。
二、判断题(共10题,每题1分,共10分)
1. Python中元组创建后不可以修改元素。( )
【答案】:正确
【解析】: 元组是不可变序列,创建后不能添加、修改、删除元素。
2. 在Python中,{}可以创建空集合。( )
【答案】:错误
【解析】: {}创建的是空字典,创建空集合应使用set()。
3. 列表的索引可以从负数开始。( )
【答案】:正确
【解析】: 列表支持负索引,-1表示最后一个元素。
4. 字典的键可以是列表类型。( )
【答案】:错误
【解析】: 字典的键必须是不可变类型,列表是可变类型不能作为键。
5. 集合中的元素可以重复。( )
【答案】:错误
【解析】: 集合具有互异性,元素不能重复。
6. list.sort()方法会返回排序后的新列表。( )
【答案】:错误
【解析】: sort()原地排序,没有返回值;sorted()返回新列表。
7. 字典中同一个键可以出现多次。( )
【答案】:错误
【解析】: 字典的键必须唯一,后出现的键值对会替换前面的。
8. 元组可以使用append()方法添加元素。( )
【答案】:错误
【解析】: 元组是不可变序列,没有append()方法。
9. 列表推导式可以包含if条件表达式。( )
【答案】:正确
【解析】: 列表推导式语法为[表达式 for 变量 in 序列 if 条件]。
10. 在Python中,0、空字符串、None转换为布尔值时为False。( )
【答案】:正确
【解析】: 这些值在布尔上下文中被视为False。
3、 名词解释题(共4题,每题3分,共12分)
1. 元组
【答案】: 元组是Python中的一种序列类型,使用圆括号()包裹元素,元素之间用逗号分隔。元组是不可变序列,创建后不能添加、修改、删除元素。元组支持索引、切片访问,可以用于存储不需要修改的数据集合。
2. 列表
【答案】: 列表是Python中最常用的序列类型,使用方括号[]包裹元素,元素之间用逗号分隔。列表是可变序列,可以进行添加、修改、删除等操作。列表支持索引、切片访问,元素可以是任意类型,常用于存储需要动态修改的数据集合。
3. 集合
【答案】: 集合是Python中用于存储不重复元素的数据类型,使用花括号{}包裹元素或用set()创建。集合具有三个特征:无序性、确定性、互异性。集合支持交集、并集、差集等数学集合运算。
4. 字典
【答案】: 字典是Python中存储键值对映射关系的数据类型,使用花括号{}包裹,键值之间用冒号分隔。字典的键必须唯一且为不可变类型,值可以是任意类型。字典通过键来访问对应的值,支持添加、修改、删除键值对操作,常用于存储具有关联关系的数据。
四、简答题(共4题,每题4分,共16分)
1. 请简述列表和元组的主要区别。
【答案】:
(1)可变性:列表是可变序列,可以添加、修改、删除元素;元组是不可变序列,创建后不能修改
(2)创建符号:列表使用方括号[],元组使用圆括号()
(3)方法支持:列表有append()、remove()、pop()等修改方法;元组没有这些方法
(4)使用场景:列表用于需要动态修改的数据;元组用于不需要修改的数据,如配置信息
2. 请说明集合的交、并、差集运算及对应运算符。
【答案】:
(1)交集&:两个集合都包含的元素
(2)并集|:两个集合合并的所有元素
(3)差集-:在第一个集合但不在第二个集合的元素
3. 请列举字典的常用操作方法及其功能。(至少写4种)
【答案】:
(1)keys():获取字典所有键
(2)values():获取字典所有值
(3)items():获取字典所有键值对
(4)get(key, default):根据键获取值,可设置默认值
(5)字典名[key]=value:添加或修改键值对
(6)del 字典名[key]:删除指定键值对
4. 请说明list.sort()和sorted()的区别。
【答案】:
(1)sort()是列表的方法,原地排序,直接修改原列表,没有返回值
(2)sorted()是内置函数,返回排序后的新列表,不修改原列表
(3)sort()只能用于列表,sorted()可用于任何可迭代对象
(4)两者都支持reverse参数实现降序排序
五、编程题(本题共1小题,每题12分,共12分)
编写程序,实现学生信息管理功能:
1. 创建一个字典存储3个学生的信息(学信信息至少要包括:学号、姓名、成绩)(3分)
2. 使用列表存储这3个学生字典,遍历列表输出所有学生信息(4分)
3.输入一个学生姓名,查找并输出该学生的学号和成绩;若不存在,输出“未找到该学生”(5分)
【答案】:
第1问:创建学生信息字典并存储到列表
students = [
{"学号": "2026001", "姓名": "小明", "成绩": 85},
{"学号": "2026002", "姓名": "小红", "成绩": 92},
{"学号": "2026003", "姓名": "小刚", "成绩": 78}
]
第2问:遍历列表输出所有学生信息
print("所有学生信息:")
for student in students:
print(f"学号:{student['学号']}, 姓名:{student['姓名']}, 成绩:{student['成绩']}")
第3问:根据姓名查询学生信息
name = input("请输入要查询的学生姓名:")
found = False
for stu in students:
if stu["姓名"] == name:
print(f"学号:{stu['学号']},成绩:{stu['成绩']}")
found = True
break
if not found:
print("未找到该学生")
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$