内容正文:
《Python 程序编写入门》高等教育出版社
第2单元 程序世界的基本元素
时间:90分钟 总分:100分
班级___________ 姓名___________ 学号___________ 成绩_____________ 一、选择题(本大题共20小题,每小题2分,共40分)
1.以下属于 Python 合法标识符的是( )。
A. 123var
B. _name
C. var-name
D. class
2.Python 中,以下可用于判断 x 是否在列表 lst 中的表达式是( )
A. x % lst
B. x in lst
C. lst contain x
D. x == lst
3.以下能正确生成空字典的是( )。
A. dict = ()
B. dict = []
C. dict = {}
D. dict = set()
4.执行 a, b = 1, 2; a, b = b, a 后,a、b 的值是( )。
A.1,2
B.2,1
C.报错
D.无变化
5.关于Python列表lst = [1, 2, 3],以下操作能删除元素2的是( )。
A. lst.pop(1)
B. lst.remove(3)
C. del lst[0]
D. lst.clear()
6.Python中,要生成0到9(含9 )的整数序列,正确的是( )。
A. range(0, 9)
B. range(1, 10)
C. range(0, 10)
D. range(9)
7.以下能正确判断字符串s是否以'py'开头的Python代码是( )。
A. s.startswith('py')
B. s.endswith('py')
C. s.find('py') == 0
D. 以上都不对
8.Python中,dict = {'name': 'Tom', 'age': 18} ,获取'age'对应值的正确方式是( )。
A.dict['age']
B.dict(age)
C.dict.get(age)
D.dict.age
9.以下运算优先级最高的是( )。
A. +
B. *
C. **
D. //
10.函数 len((1, 2, 3, 4)) 的返回值是( )。
A. 3
B. 4
C. 5
D. 报错
11.Python 中,bool(0.0) 的值是( )。
A. False
B. True
C. 报错
D. 不确定
12.print(round(2.5)) 的结果是( )。
A. 2
B. 3
C. 2.5
D. 报错
13.表达式 'a' * 2 + 'b' 的结果是( )。
A. 'aba'
B. 'ab'
C. 报错
D. 'aab'
14.关于 Python 列表和元组,以下描述错误的是( )。
A. 列表是可变类型,元组是不可变类型
B. 列表用[] 定义,元组用() 定义
C. 列表和元组都可通过索引访问元素
D. 列表和元组都能使用 append 方法添加元素
15.以下能正确获取字典 d = {'a': 1, 'b': 2} 所有值的是( )。
A. d.keys()
B. d.values()
C. d.items()
D. d.getall()
16.Python 中,以下属于浅拷贝的是( )。
A. list1 = list2
B. list1 = list2.copy()
C. list1 = list2[:]
D. 以上 B、C 都是
17.Python 中,frozenset([1, 2, 3]) 的类型是( )。
A. list
B. tuple
C. set
D. frozenset
18.s = "Python is fun"; print(s.split(' ')) 的结果是( )。
A. ["Python", "is", "fun"]
B. ["Python is fun"]
C. ["Python", "is fun"]
D.报错
19.x = frozenset([1, 2, 3]); y = {3, 4, 5}; print(x & y) 的结果是( )。
A. {3}
B. {1, 2, 3, 4, 5}
C. {1, 2}
D. set()
20.以下能正确关闭文件对象 f 的是( )。
A. f.close()
B. f.closed()
C. close(f)
D. f = None
二、填空题(本大题共20小题,每小题2分,共40分)
1.import random; print(random.randint(1, 10)) 的运行结果范围是____ 。
2.set1 = {1, 2, 3}; set2 = {3, 4, 5}; print(set1 | set2) 的运行结果为____。
3.tuple1 = (1, 2, 3); print(tuple1[-1]) 的运行结果为____。
4.x = " Python "; y = x.strip().lower(); print(y) 的运行结果为____。
5.lst = [5, 3, 7, 1]; lst.sort(reverse=True); print(lst) 的运行结果为____。
6.d = dict.fromkeys(['a', 'b'], 0); print(d) 的运行结果为____。
7. a = True; b = False; print(a and b) 的运行结果为____。
8.Python 中,a = [1, 2, 3]; a.pop(1); print(a) 的运行结果为____。
9.s = "hello"; print(s.find("ll")) 的运行结果为____。
10.d = {'k1': 10, 'k2': 20}; d['k3'] = 30; print(d) 的运行结果为____。
11.a = (1, 2); b = (3,); print(a + b) 的运行结果为____。
12. set1 = {1, 2}; set1.update([3, 4]); print(set1) 的运行结果为____。
13.import math; print(math.ceil(3.2)) 的运行结果为____。
14.Python 中,print(ord('A')) 的运行结果为____。
15.lst = [1, 2, 3]; lst.extend([4, 5]); print(lst) 的运行结果为____。
16.import math; print(math.sqrt(16)) 的运行结果为____。
17.set1 = {1, 2, 3}; set1.add(4); print(set1) 的运行结果为____。
18.a = (1, 2, 3); b = (4, 5); print(a + b) 的运行结果为____。
19.a = "Hello"; print(a.lower()) 的运行结果为____。
20.Python 中,zip([1, 2], ['a', 'b']) 返回的可迭代对象,元素是____。
三、简答题(本大题共4小题,每小题5分,共20分)
1.元组a=(2025,2024,2026),b=(2026,2027),求a+b并写出运行的结果。
2.有列表nums = [3, 1, 4, 1, 5, 9, 2, 6],用Python代码去重并按升序排序,写出步骤。
3.集合a={1,2,3,4},b={1,2,5,6},求a与b的差集,并集,补集的结果。
4.解释Python中“可变类型”和“不可变类型”的区别,各举一个典型例子(如列表、元组 )。
学科网(北京)股份有限公司
$$
《Python 程序编写入门》高等教育出版社
第2单元 程序世界的基本元素
时间:90分钟 总分:100分
班级___________ 姓名___________ 学号___________ 成绩_____________ 一、选择题(本大题共20小题,每小题2分,共40分)
1.以下属于 Python 合法标识符的是( )。
A. 123var
B. _name
C. var-name
D. class
【答案】B
【解析】 Python 标识符规则:不能以数字开头;不能含 -;class 是关键字;_name 符合规则,以下划线开头,是合法标识符 。
2.Python 中,以下可用于判断 x 是否在列表 lst 中的表达式是( )
A. x % lst
B. x in lst
C. lst contain x
D. x == lst
【答案】B
【解析】in 是 Python 成员运算符,x in lst 用于判断 x 是否是 lst 元素,所以选B。
3.以下能正确生成空字典的是( )。
A. dict = ()
B. dict = []
C. dict = {}
D. dict = set()
【答案】C
【解析】() 生成空元组;[] 生成空列表;{} 生成空字典;set() 生成空集合 所以选C。
4.执行 a, b = 1, 2; a, b = b, a 后,a、b 的值是( )。
A.1,2
B.2,1
C.报错
D.无变化
【答案】B
【解析】Python 支持多变量赋值和交换,先 a=1、b=2,然后 a, b = b, a 把 b 值给 a,a 值给 b,实现交换,结果 a=2、b=1 。所以选B。
5.关于Python列表lst = [1, 2, 3],以下操作能删除元素2的是( )。
A. lst.pop(1)
B. lst.remove(3)
C. del lst[0]
D. lst.clear()
【答案】A
【解析】pop(index) 按索引删除元素并返回该元素,lst.pop(1) 删索引 1(即元素 2 );remove(value) 删第一个匹配值,所以选A。
6.Python中,要生成0到9(含9 )的整数序列,正确的是( )。
A. range(0, 9)
B. range(1, 10)
C. range(0, 10)
D. range(9)
【答案】C
【解析】range(start, end) 生成 [start, end) 区间整数,range(0, 10) 生成 0 到 9 ,所以选C。
7.以下能正确判断字符串s是否以'py'开头的Python代码是( )。
A. s.startswith('py')
B. s.endswith('py')
C. s.find('py') == 0
D. 以上都不对
【答案】A
【解析】startswith(prefix) 方法判断字符串是否以指定前缀开头;endswith 是判断结尾;find('py') == 0 虽也能判断,但 startswith 更直接语义化,所以选A。
8.Python中,dict = {'name': 'Tom', 'age': 18} ,获取'age'对应值的正确方式是( )。
A.dict['age']
B.dict(age)
C.dict.get(age)
D.dict.age
【答案】A
【解析】字典通过 [key] 语法获取值,dict['age'] 能拿到 18 ;B 是创建字典语法,不是取值;get 方法需传字符串 'age' ,即 dict.get('age') ;D 不是字典取值语法,所以选 A 。
9.以下运算优先级最高的是( )。
A. +
B. *
C. **
D. //
【答案】C
【解析】Python 运算优先级中,幂运算** 高于乘除(*、// 等 )和加减(+ 等 ),所以选 C 。
10.函数 len((1, 2, 3, 4)) 的返回值是( )。
A. 3
B. 4
C. 5
D. 报错
【答案】B
【解析】len() 函数用于获取可迭代对象(如元组 )的元素个数,元组(1, 2, 3, 4) 有4 个元素,所以返回4 ,选 B 。
11.Python 中,bool(0.0) 的值是( )。
A. False
B. True
C. 报错
D. 不确定
【答案】A
【解析】0.0 是浮点数形式的假值,转换为布尔类型是False ,所以选 A 。
12.print(round(2.5)) 的结果是( )。
A. 2
B. 3
C. 2.5
D. 报错
【答案】A
【解析】Python 3.x 里 round(2.5) 结果是2 ,当数值是x.5 形式时,Python 3 中会舍入到最接近的偶数,2.5 更接近2 和3 中的偶数2 ,遵循“四舍六入五取偶”规则。
13.表达式 'a' * 2 + 'b' 的结果是( )。
A. 'aba'
B. 'ab'
C. 报错
D. 'aab'
【答案】D
【解析】先算乘法'a' * 2 = 'aa' ,再算加法'aa' + 'b' = 'aab' ,所以选D。
14.关于 Python 列表和元组,以下描述错误的是( )。
A. 列表是可变类型,元组是不可变类型
B. 列表用[] 定义,元组用() 定义
C. 列表和元组都可通过索引访问元素
D. 列表和元组都能使用 append 方法添加元素
【答案】D
【解析】列表是可变类型,有append 方法;元组是不可变类型,没有append 方法,A、B、C 描述正确,所以选 D 。
15.以下能正确获取字典 d = {'a': 1, 'b': 2} 所有值的是( )。
A. d.keys()
B. d.values()
C. d.items()
D. d.getall()
【答案】B
【解析】d.values() 返回字典所有值的视图;d.keys() 返回键视图;d.items() 返回键值对视图;Python 无 d.getall() 方法,所以选 B 。
16.Python 中,以下属于浅拷贝的是( )。
A. list1 = list2
B. list1 = list2.copy()
C. list1 = list2[:]
D. 以上 B、C 都是
【答案】D
【解析】list2.copy() 和 list2[:] 都属于浅拷贝(创建新列表,但嵌套可变对象仍共享 );list1 = list2 是引用赋值,不是拷贝。所以选 D 。
17.Python 中,frozenset([1, 2, 3]) 的类型是( )。
A. list
B. tuple
C. set
D. frozenset
【答案】D
【解析】frozenset 是不可变集合类型,创建后元素不可修改,frozenset([1,2,3]) 类型为 frozenset ,选 D 。
18.s = "Python is fun"; print(s.split(' ')) 的结果是( )。
A. ["Python", "is", "fun"]
B. ["Python is fun"]
C. ["Python", "is fun"]
D.报错
【答案】A
【解析】split(' ') 按空格分割字符串,将s 拆分为["Python", "is", "fun"] ,所以选A。
19.x = frozenset([1, 2, 3]); y = {3, 4, 5}; print(x & y) 的结果是( )。
A. {3}
B. {1, 2, 3, 4, 5}
C. {1, 2}
D. set()
【答案】A
【解析】& 是集合交集运算符,x 和y 的交集是{3} ,frozenset 和普通集合可进行交集运算。所以选 A。
20.以下能正确关闭文件对象 f 的是( )。
A. f.close()
B. f.closed()
C. close(f)
D. f = None
【答案】A
【解析】f.close() 是关闭文件的标准方法;f.closed 是属性,判断文件是否关闭;close(f) 不是 Python 语法;f = None 只是取消引用,不保证关闭文件,所以选 A。
二、填空题(本大题共20小题,每小题2分,共40分)
1.import random; print(random.randint(1, 10)) 的运行结果范围是____ 。
【答案】1 到 10
【解析】random.randint(a, b) 生成 a 到 b 之间(包含 a 和 b )的随机整数。
2.set1 = {1, 2, 3}; set2 = {3, 4, 5}; print(set1 | set2) 的运行结果为____。
【答案】{1, 2, 3, 4, 5}
【解析】| 是集合并集运算符,合并两个集合去重后的元素。
3.tuple1 = (1, 2, 3); print(tuple1[-1]) 的运行结果为____。
【答案】3
【解析】负索引从右往左数,-1 表示最后一个元素,即 3 。
4.x = " Python "; y = x.strip().lower(); print(y) 的运行结果为____。
【答案】python
【解析】先 strip() 去除首尾空格,再 lower() 转为小写,结果为 python 。
5.lst = [5, 3, 7, 1]; lst.sort(reverse=True); print(lst) 的运行结果为____。
【答案】[7, 5, 3, 1]
【解析】sort(reverse=True) 对列表降序排序,原列表排序后变为 [7,5,3,1] 。
6.d = dict.fromkeys(['a', 'b'], 0); print(d) 的运行结果为____。
【答案】{'a': 0, 'b': 0}
【解析】fromkeys() 用序列作为键,指定值 0 填充,创建新字典。
7. a = True; b = False; print(a and b) 的运行结果为____。
【答案】False
【解析】and 逻辑运算符,两边都为真才返回真,a 真 b 假,结果 False 。
8.Python 中,a = [1, 2, 3]; a.pop(1); print(a) 的运行结果为____。
【答案】[1, 3]
【解析】pop(index) 方法删除并返回指定索引的元素,删除索引 1(元素 2 )后,列表变为 [1, 3] 。
9.s = "hello"; print(s.find("ll")) 的运行结果为____。
【答案】2
【解析】find() 方法查找子串首次出现的索引,"ll" 在 "hello" 中从索引 2 开始,返回 2 。
10.d = {'k1': 10, 'k2': 20}; d['k3'] = 30; print(d) 的运行结果为____。
【答案】{'k1': 10, 'k2': 20, 'k3': 30}
【解析】直接通过 d['k3'] = 30 为字典添加新键值对,字典扩展后包含 'k3': 30 。
11.a = (1, 2); b = (3,); print(a + b) 的运行结果为____。
【答案】(1, 2, 3)
【解析】元组支持+ 运算,连接两个元组,注意b 是单元素元组(末尾逗号不能少 )。
12. set1 = {1, 2}; set1.update([3, 4]); print(set1) 的运行结果为____。
【答案】{1, 2, 3, 4}
【解析】update() 方法用可迭代对象扩展集合,添加新元素。
13.import math; print(math.ceil(3.2)) 的运行结果为____。
【答案】4
【解析】math.ceil() 函数向上取整,3.2 向上取整为4 。
14.Python 中,print(ord('A')) 的运行结果为____。
【答案】65
【解析】ord() 函数返回字符的 ASCII 码值,'A' 对应 ASCII 码 65 。
15.lst = [1, 2, 3]; lst.extend([4, 5]); print(lst) 的运行结果为____。
【答案】[1, 2, 3, 4, 5]
【解析】extend() 方法将可迭代对象元素添加到列表末尾,原列表扩展后包含新元素。
16.import math; print(math.sqrt(16)) 的运行结果为____。
【答案】4.0
【解析】math.sqrt() 函数计算平方根,16 的平方根是4 ,返回浮点数4.0 。
17.set1 = {1, 2, 3}; set1.add(4); print(set1) 的运行结果为____。
【答案】{1, 2, 3, 4}
【解析】add() 方法向集合中添加元素,原集合{1,2,3} 添加4 后变为{1,2,3,4} 。
18.a = (1, 2, 3); b = (4, 5); print(a + b) 的运行结果为____。
【答案】(1, 2, 3, 4, 5)
【解析】元组支持+ 运算符,用于连接两个元组,将a 和b 连接成新元组。
19.a = "Hello"; print(a.lower()) 的运行结果为____。
【答案】hello
【解析】lower() 方法将字符串中所有大写字母转为小写,所以"Hello" 变为"hello" 。
20.Python 中,zip([1, 2], ['a', 'b']) 返回的可迭代对象,元素是____。
【答案】(1, 'a'), (2, 'b')
【解析】zip 函数将多个可迭代对象对应位置元素打包成元组,长度以最短对象为准。
三、简答题(本大题共4小题,每小题5分,共20分)
1.元组a=(2025,2024,2026),b=(2026,2027),求a+b并写出运行的结果。
【答案】
a=(2025,2024,2026)
b=(2026,2027)
print(a+b)
结果为(2025,2024,2026,2026,2027)
2.有列表nums = [3, 1, 4, 1, 5, 9, 2, 6],用Python代码去重并按升序排序,写出步骤。
【答案】
nums = [3, 1, 4, 1, 5, 9, 2, 6]
unique_nums = list(set(numls))
sorted_nums = sorted(unique_nums)
print(sorted_nums)。
3.集合a={1,2,3,4},b={1,2,5,6},求a与b的差集,并集,补集的结果。
【答案】
a={1,2,3,4}
b={1,2,5,6}
print(a-b, a|b, a^b)
{3, 4} {1, 2, 3, 4, 5, 6} {3, 4, 5, 6}
4.解释Python中“可变类型”和“不可变类型”的区别,各举一个典型例子(如列表、元组 )。
【答案】
可变类型:创建后,能直接修改其内部元素(如值、长度等 ),修改时内存地址不变。典型例子是 列表(list ),如 lst = [1, 2] ,执行 lst.append(3) ,列表内容变 [1,2,3] ,但 lst 内存地址不变。
不可变类型:创建后,无法直接修改内部元素,若要“修改”,实际是创建新对象,内存地址改变。典型例子是 元组(tuple ),如 t = (1, 2) ,不能直接 t[0] = 3 ,若想得到类似 (3,2) ,需重新创建元组(如 t = (3, ) + t[1:] ),新 t 内存地址和原不同。
学科网(北京)股份有限公司
$$