单元1 程序开发环境构建与数据输入输出
(一)选择题
1.Python是一种优秀并广泛使用的语言,得到行业内众多领域的认可,下列选项属于Python主要应用领域的是( ABCD )。
A.人工智能
B.科学计算和统计
C.大数据处理
D.游戏开发
2.Python相比其他程序设计语言具有的特点是( ABC )。
A.交互式
B.解释型
C.面向对象
D.服务端语言
3.计算机中进行信息处理和信息储存使用的是( A )。
A.二进制代码
B.十进制代码
C.十六进制代码
D.ASCII代码
4.Python源程序执行的方式是( B )。
A.编译执行
B.解析执行
C.直接执行
D.边编译边执行
5.Python代码块的标记是( C )。
A.分号
B.逗号
C.缩进
D./
6.安装好Python之后,可以有多种方式运行,下列不属于其可行运行方式的是( A )。
A.浏览器中运行
B.交互式解释器
C.命令行脚本
D.PyCharm
7.Python解释器执行’{0},{2},{1}‘.format(‘a’,‘b’,‘c’)的结果为( C )。
A.’a,b,c’
B.’a,c,c’
C.’a,c,b’
D.’c,c,b’
8.在Python解释器的主提示符或从属提示符后输入中断符( A )就会取消当前输入,回到主提示符,会抛出一个KeyboardInterrupt异常。
A.Ctrl+C
B.Ctrl+Z
C.Ctrl+O
D.Alt+C
9.学习Python要先明白什么是编程语言。下列选项正确的是( ABCD )。
A.编程语言是程序员与计算机沟通的介质
B.能够被计算机识别的表达方式即是编程语言
C.编程即程序员根据要求把自己的思想流程按照某种编程语言的语法格式编写下来
D.人类编程控制计算机工作
10.下列选项对Unicode作用的描述,正确的是( AC )。
A.能够使计算机对跨语言的文本进行转换和处理
B.能够减少存储容量,节约存储成本
C.能够使计算机对跨平台的文本进行转换和处理
D.能够使计算机处理文本速度更快
11.在Python 3中执行以下语句后得到的结果是( D )。
>>>word="Python"
>>>print "hello "+ word
A.hello Python
B."hello" Python
C.hello word
D.语法错误
(二)填空题
1.用编程语言编写的文件通常有固定的扩展名,Python文件的扩展名通常为{ .py }。
2.Python安装扩展库常用的是{ pip }工具。
3.使用pip工具查看当前已安装的Python扩展库的完整命令是{ pip list }。
4.在IDLE交互模式中浏览上一条语句的快捷键是{ Alt+P }。
5.在Python中,使用内置函数{ print() }可以将结果输出到IDLE或者标准控制台中。
6.Python的编程方式主要有{ 交互式 }编程、脚本式编程两种。
7.Python编程时关键字都不能作为变量名,在程序中先导入keyword模块,然后调用{ keyword.kwlist }即可查看Python包含的所有关键字。
8.在IDLE窗口出现{ >>> }提示符时,表示Python已经准备好了,等待用户输入Python程序代码。
9.多行注释使用三引号”‘或者3个{ 双引号“"""” }将注释括起来。
10.Python提供了{ input() }内置函数从标准输入中读入文本,默认的标准输入是键盘。
11.Python 3语句print(1, 2, 3, sep=’,‘)的输出结果为{ 1,2,3 }。
(三)判断题
1.Python是一种跨平台、开源、免费的动态编程语言。( 对 )
2.Python 3完全兼容Python 2。( 错 )
3.在Windows平台上编写的Python程序无法在UNIX平台运行。( 错 )
4.不可以在同一台计算机上安装多个Python版本。( 错 )
5.pip命令也支持扩展名为“.whl”的文件直接安装Python扩展库。( 对 )
6.Python使用缩进来体现代码之间的逻辑关系。( 对 )
7.Python代码的注释只有一种方式,那就是使用#符号。( 错 )
8.为了让代码更加紧凑,编写Python程序时应尽量避免加入空格和空行。( 错 )
9.Python程序只能在安装了Python环境的计算机上以源代码形式运行。( 错 )
10.在Python 3中,使用内置函数input()接收用户输入时,不论用户输入什么格式的内容,一律按字符串进行返回。( 对 )
11.安装Python扩展库时只能使用pip工具在线安装,如果安装不成功就没有别的办法了。( 错 )(一)选择题
1.在信息组织和存储中,最基本的单位是( B )。
A.字节(Byte)
B.位(bit)
C.字(Word)
D.双字(Double Word)
2.现有代码t=(‘a’),在Python 3解释器中查看type(t)的结果为( A )。
A.<class ‘str’>
B.<class ‘tuple’>
C.(class ‘str’)
D.(class ‘tuple’)
3.设任意一个十进制整数D,转换成二进制数为B,根据数制的概念,下列叙述中正确的是( C )。
A.数字B的位数<数字D的位数
B.数字B的位数≤数字D的位数
C.数字B的位数≥数字D的位数
D.数字B的位数>数字D的位数
4.字长为7位的无符号二进制整数能表示的十进制整数范围是( C )。
A.0~128
B.0~255
C.0~127
D.1~127
5.下列选项中,八进制数24转换成二进制数正确的是( B )。
A.00
B.00010100
C.00011100
D.00011101
6.将二进制数转换成十进制数,正确的选项为( C )。
A.139
B.141
C.149
D.151
7.下列字符中对应ASCII数值最小的选项是( A )。
A.B
B.a
C.k
D.M
8.在Python中,数值类型包括( ABCD )。
A.int
B.float
C.complex
D.bool
9.以下选项为整数类型的有( ACD )。
A.3
B.3.1
C.-3
D.0
10.Python 3解释器执行long(10)的结果为( C )。
A.10L
B.10l
C.NameError: name ‘long’ is not defined
D.1
11.在Python 3中,如果变量x = 3,那么x /= 3的结果为( C )。
A.3
B.0
C.1.0
D.1
12.下列选项中,数值最小的是( D )。
A.十进制数 55
B.二进制数
C.八进制数 101
D.十六进制数33
13.Python 3解释器执行2的8次方的结果为( A )。
A.256
B.256L
C.256l
D.报错
14.下列选项中不是Python合法的标识符的是( B )。
A.int32
B.40XL
C.self
D.name
15.Python不支持的数据类型是( A )。
A.char
B.int
C.float
D.list
16.print(type(1+2*3.14))的结果是( C )。
A.<class ’int’>
B.<class ’long’>
C.<class ’float’>
D.<class ’str’>
17.以下不是Python中的关键字的是( D )。
A.raise
B.with
C.import
D.final
18.下列语句在Python中为非法的是( B )。
A.x = y = z = 1
B.x = (y = z + 1)
C.x, y = y, x
D.x += y
19.关于Python内存管理,下列说法错误的是( B )。
A.变量不必事先声明
B.变量无须先创建和赋值而可以直接使用
C.变量无须指定类型
D.可以使用del释放资源
20.关于Python中的复数,下列说法错误的是( C )。
A.表示复数的语法是real + imag*j
B.实部和虚部都是浮点数
C.虚部末尾必须加上j,且必须是小写
D.方法conjugate返回复数的共轭复数
21.print(100 - 25 * 3 % 4)输出的结果是( B )。
A.1
B.97
C.25
D.0
(二)填空题
1.在Python中{ None }表示空类型。
2.查看变量类型的Python内置函数是{ type() }。
3.以3为实部、4为虚部,Python复数的表达形式为{ 3+4j }或3+4J。
4.Python运算符中用来计算商的整数部分的是{ // }。
5.已知x = 3,那么执行语句x += 6之后,x的值为{ 9 }。
6.已知x = 3,那么执行语句x *= 6之后,x的值为{ 18 }。
7.表达式int(40.5)的值为{ 2 }。
8.已知x=3和y=5,执行语句 x, y = y, x 后x的值是{ 5 }。
9.表达式3 2 的值为{ 9 }。
10.表达式3 * 2的值为。{ 6 }
11.表达式3 | 5的值为{ 7 }。
12.表达式3 & 6的值为{ 2 }。
13.表达式3<<2的值为{ 12 }。
14.表达式65 >> 1的值为{ 32 }。
15.表达式isinstance(‘abc’, str)的值为{ True }。
16.表达式isinstance(‘abc’, int)的值为{ False }。
17.表达式isinstance(4j, (int, float, complex))的值为{ True }。
18.表达式isinstance(‘4’, (int, float, complex))的值为{ False }。
19.表达式type(3) in (int, float, complex)的值为{ True }。
20.表达式type(3.0) in (int, float, complex)的值为{ True }。
21.表达式type(3+4j) in (int, float, complex)的值为{ True }。
22.表达式type(‘3’) in (int, float, complex)的值为{ False }。
23.表达式type(3) == int的值为{ True }。
24.表达式print(0b10101)的值为{ 21 }。
25.表达式1234%1000//100的值为{ 2 }。
26.表达式3 // 5的值为{ 0 }。
27.表达式15 // 4的值为{ 3 }。
28.已知x为整数变量,那么表达式int(hex(x), 16) == x的值为{ True }。
29.表达式160.5的值为{ 4.0 }。
30.表达式isinstance(‘Hello Python’, str)的值为{ True }。
31.已知x = 3+4j和y = 5+6j,那么表达式x+y的值为{ 8+10j }。
32.表达式int(‘11’, 2)的值为{ 3 }。
33.表达式int(‘11’, 8)的值为{ 9 }。
34.表达式int(bin(54321), 2)的值为{ 54321 }。
35.表达式chr(ord(‘A’)+1)的值为{ ’B’ }。
36.表达式int(str(34)) == 34的值为{ True }。
37.表达式chr(ord(‘a’)^32^32)的值为{ ’a’ }。
38.表达式chr(ord(‘a’)^32)的值为{ ’A’ }。
39.表达式chr(ord(‘b’)^32)的值为{ ’B’ }。
40.表达式’abc’ in ‘abdcefg’的值为{ False }。
41.表达式isinstance(3, object)的值为{ True }。
(三)判断题
1.已知x = 3,那么赋值语句x = ‘abcedfg’是无法正常执行的。( 错 )
2.Python变量使用前必须先声明,并且一旦声明就不能在当前作用域内改变其类型。( 错 )
3.Python采用的是基于值的自动内存管理方式。( 对 )
4.在任何时刻相同的值在内存中都只保留一份。( 错 )
5.Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义。( 对 )
6.在Python中可以使用if作为变量名。( 错 )
7.在Python 3中可以使用中文作为变量名。( 对 )
8.Python变量名必须以字母或下划线开头,并且区分字母大小写。( 对 )
9.99999999这样的命令在Python中无法运行。( 错 )
10.3+4j不是合法的Python表达式。( 错 )
11.0o12f是合法的八进制数字表示形式。( 错 )
12.在Python中0xad是合法的十六进制数字表示形式。( 对 )
13.3+4j是合法Python的数值类型。( 对 )
14.在Python中0oa1是合法的八进制数字表示形式。( 错 )
15.Python运算符%不仅可以用来求余数,还可以用来格式化字符串。( 对 )
16.已知x = 3,那么执行语句x+=6之后,x的内存地址不变。( 错 )
17.一个数字5也是合法的Python表达式。( 对 )
18.在Python中可以使用for作为变量名。( 错 )
19.在Python中可以使用id作为变量名,尽管不建议这样做。( 对 )
20.Python关键字不可以作为变量名。( 对 )
21.Python变量名区分大小写,所以student和Student不是同一个变量。( 对 )
22.在Python中,变量不直接存储值,而是存储值的引用,也就是值在内存中的地址。( 对 )
23.在条件表达式中不允许使用赋值运算符“=”,会提示语法错误。( 对 )
单元3 逻辑运算与流程控制
(一)选择题
1.当知道条件为True,想要程序无限执行直到人为停止的话,需要使用( C )语句。
A.for
B.break
C.while
D.if
2.下列表达式的值为True的是( C )。
A.5+4j > 2-3j
B.3>2>2
C.1==1 and 2!=1
D.not(1==1 and 0!=1)
3.求比10小且大于或等于0的偶数的代码如下,请将代码补充完善。
x = 10
while x:
x = x-1
if x%2!=0:
( B )
print (x)
A.break
B.continue
C.yield
D.flag
4.Python 3解释器执行not 1 and 1的结果为( B )。
A.True
B.False
C.0
D.1
5.有以下的程序段,其中k取( A )值时x =3。
if k<=10 and k>0:
if k>5:
if k>8:
x=0
else:
x=1
else:
if k>2:
x=3
else:
x=4
A.3 4 5
B.1 2
C.5 6 7
D.5 6
6.以下程序的执行结果是( B )。
s = 0
for i in range(1,11):
s += i
if i == 10:
print(s)
break
A.66
B.55
C.45
D.0
7.以下程序的执行结果是( A )。
s = 0
for i in range(2,11):
s += i
print(s)
else:
print(1)
A.1
B.2
C.5
D.9
8.假设n为5,那么表达式n&1 == n%2的值为( B )。
A.False
B.True
C.5
D.1
9.执行以下代码,其结果为( A )。
x = 5
y = 8
print(x == y)
A.False
B.True
C.5
D.8
10.执行以下代码,其结果为( C )。
n = 10
sum = 0
number = 1
while number <= n:
sum = sum + number
number += 1
print(sum)
A.0
B.45
C.55
D.66
(二)填空题
1.表达式’x41’ == ‘A’的值为{ True }。
2.表达式not 3的值为{ False }。
3.表达式5 if 5>6 else (6 if 3>2 else 5)的值为{ 6 }。
4.表达式1<2<3的值为{ True }。
5.表达式3 or 5的值为{ 3 }。
6.表达式0 or 5的值为{ 5 }。
7.表达式3 and 5的值为{ 5 }。
8.表达式3 and not 5的值为{ False }。
9.Python中用于表示逻辑与、逻辑或、逻辑非运算的关键字分别是and、or和{ not }。
10.Python 3语句for i in range(3):print(i, end= ‘, ‘)的输出结果为{ 0,1,2, }。
11.对于带有else子句的for循环和while循环,当循环因循环条件不成立而自然结束时{ 会 }执行else中的代码。
12.在循环语句中,{ break }语句的作用是提前结束本层循环。
13.在循环语句中,{ continue }语句的作用是跳过当前循环中的剩余语句,提前进入下一次循环。
14.表达式[5 for i in range(3)]的值为{ [ 5, 5, 5 ] }。
15.表达式3<5>2的值为{ True }。
(三)判断题
1.带有else子句的循环如果因为执行了break语句而终止的话,则会执行else子句中的代码。( 错 )
2.对于带有else子句的循环语句,如果是因为循环条件表达式不成立而自然结束循环,则执行else子句中的代码。( 对 )
3.如果仅仅是用于控制循环次数,那么使用for i in range(20)和for i in range(20, 40)的作用是等价的。( 对 )
4.在循环中continue语句的作用是跳出当前循环。( 错 )
5.在编写多层循环语句时,为了提高运行效率,应尽量减少内循环中不必要的计算。( 对 )
6.带有else子句的异常处理结构,如果不发生异常则执行else子句中的代码。( 对 )
7.当作为条件表达式时,[]与None等价。( 对 )
8.表达式[] == None的值为True。( 错 )
9.表达式pow(3,2) == 32的值为True。( 对 )
10.当作为条件表达式时,空值、空字符串、空列表、空元组、空字典、空集合、空迭代对象以及任意形式的数字0都等价于False。( 对 )
11. pass语句仅起到占位符的作用,并不会做任何操作。( 对 )
单元4 序列数据与正则表达式操作——列表
(一)选择题
1.Python的join()方法用于将序列中的元素连接生成一个新的字符串,下列描述正确的是( BD )。
A.语句”.join(‘a’,‘b’)是合法的
B.语句”.join([‘a’,‘b’])是合法的
C.语句”.join([1,2,3])是合法的
D.语句”.join([‘1’,‘2’,‘3’])是合法的
2.Python 3解释器执行for i,v in enumerate([0,1,2],2):print(i,v)和for i,v in enumerate([0,1,2]):print(i,v)的结果,正确的选项是( C )。
A.结果一致
B.第一个报错
C.第一个序号从2开始,第二个序号从0开始
D.两个都报错
3.Python 3解释器执行list=[1,4,3],list.extend(list)后list的值是( C )。
A.[1,4,3]
B.[1,4,3,[]]
C.[1, 4, 3, 1, 4, 3]
D.None
4.Python3解释器对列表[1,2,[3,4],5,6]使用reverse()方法执行的结果为( A )。
A.[6, 5, [3, 4], 2, 1]
B.[6, 5, [4, 3], 2, 1]
C.[6, 5, 2, 1, [3, 4]]
D.报错
5.现有列表list=[1,2,3,4,5,6,7,8,9,0],那么Python 3解释器执行list[1:3]=‘abc’后执行list[2]的结果是( D )。
A.4
B.c
C.abc
D.b
6.在Python中,关于reverse()方法的说法中,正确的是( BD )。
A.reverse()方法返回新的列表
B.reverse()方法没有返回值
C.reverse()方法对列表内的所有元素进行反向排序
D.reverse()方法只对一级元素进行反向排序
7.现有列表list=[1,2,3,4,5,6,7,8,9,0],那么Python 3解释器执行list.insert(2,‘a’)后执行 list[3]的结果是( B )。
A.’a’
B.3
C.2
D.4
8.已知列表x = [1, 3, 2],那么执行语句a, b, c= sorted(x)之后,b的值为( C )。
A.1
B.3
C.2
D.None
9.已知x = [3, 5, 7],那么执行语句x[1:] = [2]之后,x的值为( B )。
A.[3, 5, 7]
B.[3, 2]
C.[3, 5, 2]
D.[3]
10.已知x = [1, 2, 3],那么连续执行y = x和y.append(4)两条语句之后,x的值为( A )。
A.[1, 2, 3, 4]
B.[1, 2, 3]
C.[4]
D.[]
11.以下选项属于可变对象的是 ( B )。
A.数值类型(int,float)
B.列表
C.元组
D.字符串
12.设list=[‘a’, ’b’, ’c’, ’d’, ’e’, ’f’, ’g’],则list[::2]的值是( C )。
A.[’d’, ’e’]
B.[’d’, ’e’, ’f’, ’g’]
C.[‘a’, ‘c’, ‘e’, ‘g’]
D.[‘c’, ’d’, ’e’]
(二)填空题
1.Python 3解释器执行以下代码后,结果是{ [1, 2, [‘a’, 5]] }。
>>>list2 = list1 = [1,2,[(3,4),5]]
>>>list1[2][0] = ‘a’
>>>list2
2.现有列表list=[1,2,3,4,5,6,7,8,9,0],那么Python 3解释器执行list[1::2]的结果是{ [2, 4, 6, 8, 0] }。
3.现有列表list=[1,2,3,4,5,6,7,8,9,0],那么Python 3解释器执行list.insert(-2,‘b’)后执行 list[-2]的结果是{ 9 }。
4.Python 3解释器执行list=[2,4,6],list.extend(list)后的结果是{ [2, 4, 6, 2, 4, 6] }。
5.现有列表list=[2,3,[‘a’,‘b’,‘c’],1],那么Python 3解释器执行list[2]=2后list的值是{ [2, 3, 2, 1] }。
6.现有列表list=[2,3,[‘a’,‘b’,‘c’],1],那么Python3解释器执行list[2].extend(‘de’)后list的值是{ [2, 3, [‘a’, ‘b’, ‘c’, ’d’, ‘e’], 1] }。
7.现有列表list=[1,2,3,4,5,6,7,8,9,0],那么Python 3解释器执行list[3::-1]的结果是{ [4, 3, 2, 1] }。
8.已知x = list(range(20)),那么表达式x[-1]的值为{ 19 }。
9.已知x = [3],那么执行x += [5]之后x的值为{ [3, 5] }。
10.已知x = [3, 3, 4],那么表达式id(x[0])==id(x[1])的值为{ True }。
11.表达式list(str([3, 4])) == [3, 4]的值为{ False }。
12.已知x = [3, 2, 4, 1],那么执行语句x = x.sort()之后,x的值为{ None }。
13.表达式list(filter(lambda x: x>5, range(10)))的值为{ [6, 7, 8, 9] }。
14.已知x = list(range(20)),那么语句print(x[100:200])的输出结果为{ [] }。
15.已知x = list(range(20)),那么执行语句x[:18] = []后列表x的值为{ [18, 19] }。
16.已知x = [1, 2, 3],那么连续执行y = x[:]和y.append(4)两条语句之后,x的值为{ [1, 2, 3] }。
17.已知x = [1, 2, 3],那么连续执行y = [1, 2, 3]和y.append(4)两条语句之后,x的值为{ [1, 2, 3] }。
18.已知x = [[]] * 3,那么执行语句x[0].append(1)之后,x的值为{ [[1], [1], [1]] }。
19.已知x = [[] for i in range(3)],那么执行语句x[0].append(1)之后,x的值为{ [[1], [], []] }。
20.表达式[1, 2] + [3]的值为{ [1, 2, 3] }。
21.已知列表x = list(range(5)),那么执行语句x.remove(3)之后,表达式x.index(4)的值为{ 3 }。
22.已知列表x = [1, 3, 2],那么执行语句x.reverse()之后,x的值为{ [2, 3, 1] }。
23.已知列表x = [1, 3, 2],那么执行语句x = x.reverse()之后,x的值为{ None }。
24.已知x为非空列表,那么表达式x.reverse()== list(reversed(x))的值为{ False }。
25.已知x为非空列表,那么表达式x.sort()== sorted(x)的值为{ False }。
26.已知列表x = [1, 3, 2],那么执行语句y = list(reversed(x))之后,x的值为{ [1, 3, 2] }。
27.已知列表x = [1, 3, 2],那么执行语句y = list(reversed(x))之后,y的值为{ [2, 3, 1] }。
28.已知列表x中包含超过5个以上的元素,那么表达式x == x[:5]+x[5:] 的值为{ True }。
29.已知列表x = [1, 3, 2],那么表达式[value for index, value in enumerate(x) if index==2]的值为{ [2] }。
30.已知列表x = [1, 3, 2],那么执行语句a, b, c= map(str,sorted(x))之后,c的值为{ ’3’ }。
31.已知x = [1, 2, 3, 4, 5],那么执行语句del x[:3]之后,x的值为{ [4, 5] }。
32.表达式sorted([‘abc’, ‘acd’, ‘ade’], key=lambda x:(x[0],x[2]))的值为{ [‘abc’, ‘acd’, ‘ade’] }。
33.表达式[1, 2, 3] == [1, 3, 2]的值为{ False }。
34.已知x = [1, 2, 1],那么表达式id(x[0]) == id(x[2])的值为{ True }。
35.表达式3 not in [1, 2, 3]的值为{ False }。
36.已知x = [1, 2],那么执行语句x[0:0] = [3, 3]之后,x的值为{ [3, 3, 1, 2] }。
37.已知x = [1, 2],那么执行语句x[0:1] = [3, 3]之后,x的值为{ [3, 3, 2] }。
38.已知x = [1, 2, 3, 4, 5],那么执行语句del x[1:3]之后,x的值为{ [1, 4, 5] }。
39.已知x = [[1, 2, 3,], [4, 5, 6]],那么表达式sum([i*j for i,j in zip(*x)])的值为{ 32 }。
40.已知列表x = [1, 2, 3]和y = [4, 5, 6],那么表达式[(i,j) for i, j in zip(x,y) if i==3]的值为{ [(3, 6)] }。
41.已知列表x = [1.0, 2.0, 3.0],那么表达式sum(x)/len(x)的值为{ 2.0 }。
42.执行语句x, y, z = sorted([1, 3, 2])之后,变量y的值为{ 2 }。
43.执行语句x, y, z = [1, 2, 3]之后,变量y的值为{ 2 }。
44.已知x = [[1,3,3], [2,3,1]],那么表达式sorted(x, key=lambda item:(item[1],item[2]))的值为{ [[2, 3, 1], [1, 3, 3]] }。
45.已知列表x = [1, 2],那么连续执行语句y = x和y.append(3)之后,x的值为{ [1, 2, 3] }。
46.已知列表x = [1, 2],那么连续执行语句y =x[:]和y.append(3)之后,x的值为{ [1, 2] }。
47.已知列表x = [1, 2],执行语句y = x[:]后,表达式id(x) == id(y)的值为{ False }。
48.已知列表x = [1, 2],执行语句y = x后,表达式id(x) == id(y)的值为{ True }。
49.已知列表x = [1, 2],执行语句y = x后,表达式x is y的值为{ True }。
50.已知列表x = [1, 2],执行语句y = x[:]后,表达式x is not y的值为{ True }。
51.表达式sorted(random.sample(range(5), 5))的值为{ [0, 1, 2, 3, 4] }。
52.表达式[i for i in range(10) if i>8]的值为{ [9] }。
53.已知有列表x = [[1, 2, 3], [4, 5, 6]],那么表达式[[row[i] for row in x] for i in range(len(x[0]))]的值为{ [[1, 4], [2, 5], [3, 6]] }。
54.已知列表x = [1, 2],那么执行语句x.extend([3])之后,x的值为{ [1, 2, 3] }。
55.已知列表x = [1, 2],那么执行语句x.append([3])之后,x的值为{ [1, 2, [3]] }。
56.假设列表对象x = [1, 1, 1],那么表达式id(x[0]) == id(x[2])的值为{ True }。
57.已知列表x = list(range(10)),那么执行语句del x[::2]之后,x的值为{ [1, 3, 5, 7, 9] }。
58.已知列表x = [1, 2, 3, 4],那么执行语句del x[1]之后,x的值为{ [1, 3, 4] }。
59.表达式[1] * 2的值为{ [1, 1] }。
60.表达式[1, 2] * 2的值为{ [1, 2, 1, 2] }。
61.已知列表x = [1, 2, 3],那么执行语句x.insert(1, 4) 之后,x的值为{ [1, 4, 2, 3] }。
62.已知列表x = [1, 2, 3],那么执行语句x.insert(0, 4) 之后,x的值为{ [4, 1, 2, 3] }。
63.已知列表x = [1, 2, 3],那么执行语句x.pop(0)之后,x的值为{ [2, 3] }。
64.已知x = [[1]] * 3,那么执行语句x[0][0] = 5之后,变量x的值为{ [[5], [5], [5]] }。
65.已知x = [1, 2, 3],那么执行语句x[len(x)-1:] = [4, 5, 6]之后,变量x的值为{ [1, 2, 4, 5, 6] }。
66.已知x是一个列表对象,那么执行语句y = x[:]之后,表达式id(x) == id(y)的值为{ False }。
67.表达式sorted([13, 1, 237, 89, 100], key=lambda x: len(str(x)))的值为{ [1, 13, 89, 237, 100] }。
68.表达式[str(i) for i in range(3)]的值为{ [‘0’, ‘1’, ‘2’] }。
69.表达式list(filter(None, [0,1,2,3,0,0]))的值为{ [1, 2, 3] }。
70.表达式list(range(50, 60, 3))的值为{ [50, 53, 56, 59] }。
71.表达式[1,2,3].count(4)的值为{ 0 }。
72.Python标准库random中的sample(seq, k)方法的作用是从序列中选择{ 不重复 }的k个元素。
73.表达式[1, 2, 3]3的执行结果为{ [1, 2, 3, 1, 2, 3, 1, 2, 3] }。
74.list(map(str, [1, 2, 3]))的执行结果为{ [‘1’, ‘2’, ‘3’] }。
75.表达式[3] in [1, 2, 3, 4]的值为{ False }。
76.列表对象的sort()方法用于对列表元素进行原地排序,该方法的返回值为{ None }。
77.假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么截取aList[3:7]得到的值是{ [6, 7, 9, 11] }。
78.Python语句list(range(1,10,3))的执行结果为{ [1, 4, 7] }。
79.表达式list(range(5))的值为{ [0, 1, 2, 3, 4] }。
80.{ del }命令既可以删除列表中的一个元素,也可以删除整个列表。
81.已知a= [1, 2, 3]和b= [1, 2, 4],那么id(a[1])==id(b[1])的执行结果为{ True }。
82.截取操作list(range(6))[::2]的执行结果为{ [0, 2, 4] }。
83.利用截取操作在列表对象x的开始处增加一个元素3的代码为{ x[0:0] = [3] }。
84.语句sorted([1, 2, 3], reverse=True) == reversed([1, 2, 3])的执行结果为{ False }。
85.表达式sorted([111, 2, 33], key=lambda x: len(str(x)))的值为{ [2, 33, 111] }。
86.表达式sorted([111, 2, 33], key=lambda x: -len(str(x)))的值为{ [111, 33, 2] }。
87.已知列表对象x = [‘11’, ‘2’, ‘3’],则表达式max(x)的值为{ ’3’ }。
88.表达式min([‘11’, ‘2’, ‘3’])的值为{ ’11’ }。
89.已知列表对象x = [‘11’, ‘2’, ‘3’],则表达式max(x, key=len)的值为{ ’11’ }。
90.关键字{ in }用于测试一个对象是否是一个可迭代对象的元素。
91.使用列表推导式得到100以内所有能被13整除的数的代码可以写作{ [i for i in range(100) if i%13==0] }。
92.已知x = [3, 5, 7],那么表达式x[10:]的值为{ [] }。
93.已知x = [3, 5, 7],那么执行语句x[len(x):] = [1, 2]之后,x的值为{ [3, 5, 7, 1, 2] }。
94.已知x = [3, 7, 5],那么执行语句x.sort(reverse=True)之后,x的值为{ [7, 5, 3] }。
95.已知x = [3, 7, 5],那么执行语句x = x.sort(reverse=True)之后,x的值为{ None }。
96.已知x = [1, 11, 111],那么执行语句x.sort(key=lambda x: len(str(x)), reverse=True)之后,x的值为{ [111, 11, 1] }。
97.表达式list(zip([1,2], [3,4]))的值为{ [(1, 3), (2, 4)] }。
98.已知x = [1, 2, 3, 2, 3],执行语句x.pop()之后,x的值为{ [1, 2, 3, 2] }。
99.表达式list(map(list,zip([[1, 2, 3], [4, 5, 6]])))的值为{ [[1, 4], [2, 5], [3, 6]] }。
100.表达式[x for x in [1,2,3,4,5] if x<3]的值为{ [1, 2] }。
101.表达式[index for index, value in enumerate([3,5,7,3,7]) if value == max([3,5,7,3,7])]的值为{ [2, 4] }。
102.已知x = [3,5,3,7],那么表达式[x.index(i) for i in x if i==3]的值为{ [0, 0] }。
103.已知列表x = [1, 2],那么表达式list(enumerate(x))的值为{ [(0, 1), (1, 2)] }。
104.已知vec= [[1,2], [3,4]],则表达式[col for row in vec for col in row]的值为{ [1, 2, 3, 4] }。
105.已知vec= [[1,2], [3,4]],则表达式[[row[i] for row in vec] for i in range(len(vec[0]))]的值为{ [[1, 3], [2, 4]] }。
106.已知x = list(range(10)),则表达式x[-4:]的值为{ [6, 7, 8, 9] }。
107.已知x = [3, 5, 7],那么执行语句x[:3] = [2]之后,x的值为{ [ 2] }。
108.已知x为非空列表,那么执行语句y = x[:]之后,id(x[0]) == id(y[0])的值为{ True }。
109.已知x = [1, 2, 3, 2, 3],执行语句x.remove(2)之后,x的值为{ [1, 3, 2, 3] }。
110.表达式list(str([1,2,3])) == [1,2,3]的值为{ False }。
111.表达式list(map(lambda x: len(x), [‘a’, ‘bb’, ‘ccc’])) 的值为{ [1, 2, 3] }。
112.表达式list(map(lambda x: x+5, [1, 2, 3, 4, 5])) 的值为{ [6, 7, 8, 9, 10] }。
113.使用列表推导式生成包含10个数字5的列表,语句可以写为{ [5 for i in range(10)] }。
(三)判断题
1.已知seq为长度大于10的列表,并且已导入random模块,那么[random.choice(seq) for i in range(10)]和random.sample(seq,10)等价。( 错 )
2.列表对象的pop()方法默认删除并返回最后一个元素,如果列表已空则抛出异常。( 对 )
3.已知列表x = [1, 2, 3, 4],那么表达式x.find(5)的值应为-1。( 错 )
4.列表对象的排序方法sort()只能按元素从小到大排列,不支持别的排序方式。( 错 )
5.已知x = list(range(20)),那么语句del x[::2]可以正常执行。( 对 )
6.已知x = list(range(20)),那么语句x[::2] = []可以正常执行。( 错 )
7.已知x = list(range(20)),那么语句print(x[100:200])无法正常执行。( 错 )
8.已知x是个列表对象,那么执行语句y = x之后,对y所做的任何操作都会同样作用到x上。( 对 )
9.已知x是列表对象,那么执行语句y = x[:]之后,对y所做的任何操作都会同样作用到x上。( 错 )
10.已知x是一个列表,那么x = x[3:] + x[:3]可以实现把列表x中的所有元素循环左移3位。( 对 )
11.对于大量列表的连接,使用extend()方法比使用运算符+具有更高的效率。( 对 )
12.列表对象的extend()方法属于原地操作,调用前后列表对象的地址不变。( 对 )
13.删除列表中重复元素最简单的方法是将其转换为集合后再重新转换为列表。( 对 )
14.已知列表x中包含5个以上的元素,那么语句 x = x[:5]+x[5:] 的作用是将列表x中的元素循环左移5位。( 错 )
15.对于生成器对象x = (3 for i in range(5)),连续两次执行list(x)的结果是一样的。( 错 )
16.已知列表x = [1, 2, 3],那么执行语句x = 3之后,变量x的地址不变。( 错 )
17.使用列表对象的remove()方法可以删除列表中首次出现的指定元素,如果列表中不存在要删除的指定元素则抛出异常。( 对 )
18.假设x是含有5个元素的列表,那么截取操作x[10:]是无法执行的,会抛出异常。( 错 )
19.只能通过截取访问列表中的元素,不能通过截取修改列表中的元素。( 错 )
20.已知x为非空列表,那么表达式sorted(x, reverse=True) == list(reversed(x))的值一定是True。( 错 )
21.已知x为非空列表,那么x.sort(reverse=True)和x.reverse()的作用是等价的。( 错 )
22.生成器推导式比列表推导式具有更高的效率,推荐使用。( 对 )
23.Python列表中所有元素必须为相同类型的数据。( 错 )
24.在Python 3中语句print(*[1,2,3])不能正确执行。( 错 )
25.列表对象的append()方法属于原地操作,用于在列表尾部追加一个元素。( 对 )
26.对列表而言,在尾部追加元素比在中间位置插入元素速度更快一些,尤其是对于包含大量元素的列表。( 对 )
27.假设有非空列表x,那么x.append(3)、x = x+[3]与x.insert(0,3)在执行时间上基本没有太大区别。( 错 )
28.使用Python列表的方法insert()为列表插入元素会改变列表中插入位置之后的元素的索引。( 对 )
29.假设x为列表对象,那么x.pop()和x.pop(-1)的作用是一样的。( 对 )
30.使用del命令或者列表对象的remove()方法删除列表中的元素会影响列表中部分元素的索引。( 对 )
31.表达式list(‘[1, 2, 3]’)的值是[1, 2, 3]。( 错 )
32.同一个列表对象中的元素类型可以各不相同。( 对 )
单元4 序列数据与正则表达式操作——元组
(一)选择题
1.现有代码t = (1,2),在Python 3解释器中执行t * 3 得到的结果为( B )。
A.语法错误
B.(1, 2, 1, 2, 1, 2)
C.(2, 4, 2, 4)
D.以上说法都不对
2.以下关于元组的描述,错误的描述是( B )。
A.元组的元素可以是整数、字符串、列表等Python支持的任何类型。
B.与列表一样,元组也有append()、insert()函数。
C.元组是不可变序列。
D.元组的访问和处理速度比列表快。
3.在Python中可以创建空元组,以下语句中可以用来创建空元组的是( C )。
A.t = tuple()
B.t = (0)
C.t = ()
D.t=set()
4.Python中,以下所列方法对于元组可以使用的是( D )。
A.append()
B.insert()
C.pop()
D.len()
5.Python中,以下数据序列属于有序序列的是( C )。
A.字典
B.集合
C.元组
D.数组
6.Python中,以下所列运算符不能用于元组运算的是( A )。
A.-
B.+
C.*
D.in
7.Python中,对于定义的元组tuple = (1, 2, 3, 4, 5, 6, 7 ),不能实现输出元组的全部元素的是( D )。
A.tuple
B.tuple[:]
C.tuple[0:len(tuple)]
D.tuple(0:7)
8.Python中,对于定义的元组tuple1 = (1, 2, 3),以下连接操作正确的是( B )。
A.t=tuple1+‘4’
B.t=tuple1+(4,5)
C.t=tuple1+[4,5]
D.t=tuple1+{4 , 5}
9.Python中,对于定义的元组tuple = (1, 2, 3),以下各项操作能成功执行是( D )。
A.tuple[2]=4
B.tuple[0]=()
C.tuple[0]=None
D.tuple = (4, 5, 6)
10.Python中,对于定义的元组tuple = (‘1’, ‘2’, ‘3’, ’1’, ‘2’, ‘3’),以下各项操作不能成功执行的是( C )。
A.tuple.index(‘2’)
B.tuple.count(‘2’)
C.tuple.pop()
D.len(tuple)
(二)填空题
1.表达式sorted({‘a’:3, ‘b’:9, ‘c’:78})的值为{ [‘a’, ‘b’, ‘c’] }。
2.已知x = ([1], [2]),那么执行语句x[0].append(3)后x的值为{ ([1, 3], [2]) }。
3.表达式(1,) + (2,)的值为{ (1, 2) }。
4.表达式(1) + (2)的值为{ 3 }。
5.表达式(1, 2, 3)+(4, 5)的值为{ (1, 2, 3, 4, 5) }。
6.已知x = (3),那么表达式x * 3的值为{ 9 }。
7.已知x = (3,),那么表达式x * 3的值为{ (3, 3, 3) }。
8.语句x = (3,)执行后x的值为{ (3,) }。
9.语句x = (3)执行后x的值为{ 3 }。
10.语句x = 3==3, 5执行结束后,变量x的值为{ (True, 5) }。
(三)判断题
1.创建只包含一个元素的元组时,必须在元素后面加一个逗号,例如(3,)。( 对 )
2.同一个元组对象中的所有元素必须为相同类型。( 错 )
3.已知x为非空列表,那么执行语句x[0] = 3之后,列表对象x的内存地址不变。( 对 )
4.集合可以作为元组的元素。( 对 )
5.Python中的元组支持双向索引。( 对 )
6.已知x = (1, 2, 3, 4),那么执行x[0] = 5之后,x的值为(5, 2, 3, 4)。( 错 )
7.在Python中元组的值是不可变的,因此,已知x = ([1], [2]),那么语句x[0].append(3)是无法正常执行的。( 错 )
8.元组是不可变的,不支持列表对象的inset()、remove()等方法,也不支持del命令删除其中的元素,但可以使用del命令删除整个元组对象。( 对 )
9.元组的访问速度比列表的要快一些,如果定义了一系列常量值,并且主要用途仅是对其进行遍历而不需要进行任何修改,建议使用元组而不使用列表。( 对 )
10.只能对列表进行截取操作,不能对元组和字符串进行截取操作。( 错 )
11.只能通过截取访问元组中的元素,不能通过截取修改元组中的元素。( 对 )
单元4 序列数据与正则表达式操作——字典
(一)选择题
1.Python 3解释器执行for x in {‘a’:‘b’,‘c’:’d’}:print(x , end=" ")的结果是( B )。
A.b c
B.a c
C.b d
D.a b
2.Python 3解释器执行for k,v in {1:‘a’,2:‘b’}:print(k,v)的结果是( D )。
A.1 b
B.b 1
C.1 ’b’
D.TypeError: cannot unpack non-iterable int object
3.现有d = {},Python 3解释器执行d[(1,2)] = ({3,(4)})后d的结果是( A )。
A.{(1, 2): {3, 4}}
B.{(1, 2): ({3, 4})}
C.报错
D.以上都不对
4.现有代码d={},在Python 3解释器中执行d[([1,2])] = ‘b’得到的结果为( A )。
A.TypeError: unhashable type: ‘list’
B.{([1, 2]): ‘b’}
C.{(1): ‘b’}
D.以上都不对
5.Python 3解释器执行d = {(1,[2]):‘a’,(1,2):1}后d的结果是( B )。
A.{(1,[2]):‘a’,(1,2):1}
B.TypeError: unhashable type: ‘list’
C.{(1,2):‘a’,(1,2):1}
D.以上说法都不对
6.现有d = {‘a’: ‘b’,1:1,2:2},Python 3解释器执行d.pop()的结果是( A )。
A.报错
B.(1,1)
C.(‘a’:‘b’)
D.以上都不对
7.以下不能创建一个字典的语句是( C )。
A.dict1 = {}
B.dict2 = { 3 : 5 }
C.dict3 = dict( [2 , 5] ,[ 3 , 4 ] )
D.dict4 = dict( ( [1,2],[3,4] ) )
8.已知x = {1:2, 2:3, 3:4},那么表达式sum(x)的值为( A )。
A.6
B.9
C.15
D.3
9.已知x = {1:2, 2:3},那么表达式x.get(3, 4)的值为( B )。
A.3
B.4
C.1
D.2
10.已知x = {1:1},那么执行语句x[2] = 2之后,len(x)的值为( B )。
A.1
B.2
C.3
D.4
(二)填空题
1.已知x = range(1,4)和y = range(4,7),那么表达式sum([i*j for i,j in zip(x,y)])的值为{ 32 }。
2.现有d = {},Python 3解释器执行d[‘a’] = ‘b’后d的结果是{ {‘a’: ‘b’} }。
3.现有字典d1 = {‘a’:1, ‘b’:2, ‘c’:3}和d2 = {1:‘a’, ‘b’:4, ’d’:3},那么Python 3解释器执行d1.update(d2)后d2的结果是{ {1: ‘a’, ‘b’: 4, ’d’: 3} }。
4.Python 3解释器执行d = dict.fromkeys([‘apple’, ‘orange’],10)得到的结果是{ {‘apple’: 10, ‘orange’: 10} }。
5.已知x = {1:1, 2:2},那么执行语句x.update({2:3, 3:3})之后,表达式sorted(x.items())的值为{ [(1, 1), (2, 3), (3, 3)] }。
6.已知x = {1:1, 2:2},那么执行语句x[3] = 3之后,表达式sorted(x.items())的值为{ [(1, 1), (2, 2), (3, 3)] }。
7.表达式type({}) == dict的值为{ True }。

8.表达式{‘x’: 1, {‘y’: 2}}的值为{ {‘x’: 1, ‘y’: 2} }。
9.已知字典x = {i:str(i+3) for i in range(3)},那么表达式sum(x)的值为{ 3 }。
10.已知字典x = {i:str(i+3) for i in range(3)},那么表达式”.join(x.values())的值为{ ’345’ }。
11.已知字典x = {i:str(i+3) for i in range(3)},那么表达式sum(item[0] for item in x.items())的值为{ 3 }。
12.已知字典x = {i:str(i+3) for i in range(3)},那么表达式”.join([item[1] for item in x.items()])的值为{ ’345’ }。
13.表达式dict(zip([1, 2], [3, 4]))的值为{ {1: 3, 2: 4} }。
14.已知x = {1:1, 2:2},那么执行语句x[2] = 4之后,len(x)的值为{ 2 }。
15.字典中多个元素之间使用{ 逗号 }分隔,每个元素的“键”与“值”之间使用{ 冒号 }分隔。
16.字典对象的{ get() }方法可以获取指定“键”对应的“值”,并且可以在指定键不存在的时候返回指定值,如果不指定则返回None。
17.字典对象的{ items() }方法返回字典中的“键值对”列表。
18.字典对象的{ keys() }方法返回字典的“键”列表。
19.字典对象的{ values() }方法返回字典的“值”列表。
20.已知x = {1:2},那么执行语句x[2] = 3之后,x的值为{ {1: 2, 2: 3} }。
21.假设有列表a= [‘name’, ‘age’, ‘sex’]和b= [‘LinMing’, 28, ‘Male’],请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为{ c= dict(zip(a, b)) }。
22.表达式sorted({‘a’:3, ‘b’:9, ‘c’:78}.values())的值为{ [3, 9, 78] }。
23.已知x = {1:2, 2:3, 3:4},那么表达式sum(x.values())的值为{ 9 }。
24.已知x = {1:2, 2:3},那么表达式x.get(2, 4)的值为{ 3 }。
25.已知x = {‘a’: ‘b’, ‘c’: ’d’},那么表达式’a’ in x的值为{ True }。
26.已知x = {‘a’: ‘b’, ‘c’: ’d’},那么表达式’b’ in x的值为{ False }。
27.已知x = {‘a’: ‘b’, ‘c’: ’d’},那么表达式’b’ in x.values()的值为{ True }。
28.Python 3解释器执行d = {1:1,2:1}后d的结果是{ {1: 1, 2: 1} }。
(三)判断题
1.集合可以作为字典的键。( 错 )
2.集合可以作为字典的值。( 对 )
3.Python字典支持双向索引。( 错 )
4.Python内置的字典dict中的元素是按添加的顺序依次进行存储的。( 错 )
5.已知x = {1:1, 2:2},那么语句x[3] =3无法正常执行。( 错 )
6.Python内置的字典是无序的,如果需要一个可以记住元素插入顺序的字典,可以使用collections.OrderedDict。( 对 )
7.当以指定“键”为索引给字典对象赋值时,若该“键”存在则表示修改该“键”对应的“值”,若不存在则表示为字典对象添加一个新的“键值对”。( 对 )
8.Python支持使用字典的“键”作为索引来访问字典中的值。( 对 )
9.字典的“键”必须是不可变的。( 对 )
10.Python字典中的“键”不允许重复。( 对 )
11.Python字典中的“值”不允许重复。( 错 )
12.Python字典中的“键”可以是列表。( 错 )
13.Python字典中的“键”可以是元组。( 对 )
14.Python字典和集合属于无序序列。( 对 )
单元4 序列数据与正则表达式操作——集合
(一)选择题
1.有集合s = {1,2,3},Python 3解释器执行del s[2]的结果为( D )。
A.3
B.2
C.{1,2}
D.TypeError: ‘set’ object doesn’t support item deletion
2.Python 3解释器执行{1, 2, ‘a’} | {2, 3, 4}的结果为( B )。
A.{2,3,4}
B.{1, 2, 3, 4, ‘a’}
C.{1,2,3,4}
D.{2,3,4,‘a’}
3.Python中,对于已定义的集合fruits = {"苹果", "橘子", "梨", "香蕉"},以下删除集合元素的方法,不能成功执行的是( )。
A.fruits.remove("梨")
B.fruits.discard ("梨")
C.fruits.pop()
D.fruits.del("梨")
4.Python中,集合中添加的元素内容不能是( A )。
A.列表
B.字符串
C.元组
D.数字
5.Python中,对于已定义的集合fruits = {"苹果", "橘子"},以下语句无法成功执行的是( B )。
A.fruits.add("香蕉")
B.fruits.insert("香蕉")
C.fruits.update({"香蕉"})
D.fruits.clear()
6.Python中,以下关于集合的描述错误的是( D )。
A.无法删除集合中指定位置的元素,只能删除特定值的元素。
B.Python集合中的元素不允许重复。
C.Python集合是无序的。
D.Python集合可以包含相同的元素。
7.表达式{1, 2, 3} | {3, 4, 5}的值为( C )。
A.{2, 3}
B.{1}
C.{1, 2, 3, 4, 5}
D.{}
8.表达式{1, 2, 3} & {2, 3, 4}的值为( A )。
A.{2, 3}
B.{1,4}
C.{1, 2, 3, 4, 5}
D.{}
9.表达式{1, 2, 3, 4, 5} ^ {4, 5, 6, 7}的值为( C )。
A.{1, 2, 3, 4, 5, 6, 7}
B.{4, 5}
C.{1, 2, 3, 6, 7}
D.{1, 2, 3}
(二)填空题
1.Python 3解释器执行{2, 3, 4}.issubset({2, 3, 4})的结果为{ True }。
2.表达式{1, 2, 3, 4, 5, 6} ^ {5, 6, 7, 8}的值为{ {1, 2, 3, 4, 7, 8} }。
3.表达式type({}) == set的值为{ False }。
4.已知x = [1, 2, 3],那么表达式not (set(x*100)-set(x))的值为{ True }。
5.已知x = [1, 2, 3],那么表达式not (set(x*100)&set(x))的值为{ False }。
6.表达式3 in {1, 2, 3}的值为{ True }。
7.表达式set([1,2,3]) == {1, 2, 3}的值为{ True }。
8.表达式set([1,2, 2,3]) == {1, 2, 3}的值为{ True }。
9.表达式{1, 2, 3} | {3, 4, 5}的值为{ {1, 2, 3, 4, 5} }。
10.表达式set([1, 1, 2, 3])的值为{ {1, 2, 3} }。
11.表达式{1, 2, 3} & {3, 4, 5}的值为{ {3} }。
12.表达式{1, 2, 3} & {2, 3, 4}的值为{ {2, 3} }。
13.表达式{1, 2, 3} - {3, 4, 5}的值为{ {1, 2} }。
14.表达式{1, 2, 3} < {3, 4, 5}的值为{ False }。
15.表达式{1, 2, 3} < {1, 2, 4}的值为{ False }。
16.已知x = {1, 2, 3},那么执行语句x.add(3)之后,x的值为{ {1, 2, 3} }。
17.表达式{1, 2, 3, 4, 5} ^ {4, 5, 6, 7}的值为{ {1, 2, 3, 6, 7} }。
18.Python运算符中用来计算集合并集的是{ | }。
19.表达式type({3})的值为{ <class ‘set’> }。
(三)判断题
1.运算符“-”可以用于集合的差集运算。( 对 )
2.集合可以作为列表的元素。( 对 )
3.字典可以作为集合的元素。( 错 )
4.可以使用del删除集合中的部分元素。( 错 )
5.表达式{1, 2} * 2的值为{1, 2, 1, 2}。( 错 )
6.Python集合支持双向索引。( 错 )
7.表达式{1, 3, 2}>{1, 2, 3}的值为True。( 错 )
8.Python集合不支持使用索引访问其中的元素。( 对 )
9.无法删除集合中指定位置的元素,只能删除特定值的元素。( 对 )
10.Python字典和集合支持双向索引。( 错 )
11.Python集合中的元素不允许重复。( 对 )
12.Python集合可以包含相同的元素。( 错 )
13.Python集合中的元素可以是元组。( 对 )
14.Python集合中的元素可以是列表。( 错 )
15.已知A和B是两个集合,并且表达式A<B的值为False,那么表达式A>B的值一定为True。( 错 )
16.列表可以作为集合的元素。( 错 )
17.Python内置的集合set中元素顺序是按元素的哈希值进行存储的,并不是按先后顺序。( 对 )
单元5 函数应用与模块化程序设计
(一)选择题
2.调用以下函数返回的值是( D )。
def myfun()
pass
A.0
B.出错不能运行
C.空字符串
D.None
3.函数如下。
def showNumber(numbers):
for n in numbers:
print(n)
下列选项中在调用函数时会报错的是( C )。
A.showNumber([2,4,5])
B.showNumber(‘abcesf ‘)
C.showNumber(3.4)
D.showNumber((12,4,5))
4.函数如下。
def chanageInt(number2):
number2 = number2+1
print("changeInt:number2=",number2)
number1 = 2
chanageInt(number1)
print("number:",number1)
输出结果正确的是( B )。
A.changeInt: number2= 3
number: 3
B.changeInt:number2= 3
number: 2
C.number: 2
changeInt: number2= 2
D.number: 2
changeInt: number2= 3
6.导入模块的方式错误的是( D )。
A.import test
B.from test import *
C.import test as m
D.import m from test
7.以下关于模块说法错误的是( C )。
A.一个xx.py文件就是一个模块
B.任何一个普通的xx.py文件都可以作为模块导入
C.模块文件的扩展名不一定是.py
D.运行代码时会从指定的文件夹搜索导入的模块,如果没有会报错
8.以下关于函数定义的规则,正确的描述有( ABCD )。
A.函数代码块以def关键字开头,后接函数标识符名称和圆括号()
B.任何传入参数和自变量必须放在圆括号中间,可以在圆括号之间定义参数
C.return [表达式]结束函数,选择性地返回一个值给调用方
D.函数内容以冒号起始,并且要缩进
9.下列代码的运行结果是( A )。
def total(a, b=3, c=5):
return a+b+c
print(total(a=8, c=2))
A.13
B.16
C.15
D.14
12.下列代码的运行结果是( C )。
def demo(a, b, c=3, d=100):
return sum((a,b,c,d))
print(demo(1, 2, d=3))
A.11
B.10
C.9
D.8
13.下列代码的运行结果是( A )。
def demo():
x = 5
x = 3
demo()
print(x)
A.3
B.4
C.5
D.6
(二)填空题
1.Python标准库math中用来计算平方根的函数是{ sqrt() }。
8.表达式abs(-3)的值为{ 3 }。
9.Python内置函数{ len() }可以返回列表、元组、字典、集合、字符串以及range对象中元素的个数。
10.Python内置函数{ max() }用来返回序列中的最大元素。
11.Python内置函数{ min() }用来返回序列中的最小元素。
12.Python内置函数{ sum() }用来返回数值型序列中所有元素之和。
16.表达式sum(range(1, 10, 2))的值为{ 25 }。
23.Python中定义函数的关键字是{ def }。
24.如果函数中没有return语句或者return语句不带任何返回值,那么该函数的返回值为{ None }。
27.在Python中定义类时,与运算符“”对应的特殊方法为 { pow() }。
28.已知f = lambda x: x+5,那么表达式f(3)的值为{ 8 }。
30.假设有Python程序文件abc.py,其中只有一条语句print(name),那么直接运行该程序文件得到的结果为{ main }。
31.已知函数定义
def func(*p):
return sum(p)
那么表达式func(1,2,3)的值为{ 6 }。
32.已知函数定义
def func(*p):
return sum(p)
那么表达式func(1,2,3, 4)的值为{ 10 }。
33.已知函数定义
def func(p):
return sum(p.values())
那么表达式func(x=1, y=2, z=3)的值为{ 6 }。
36.已知函数定义
def demo(x, y, op):
return eval(str(x)+op+str(y))
那么表达式demo(3, 5, ‘+’)的值为{ 8 }。
37.已知函数定义
def demo(x, y, op):
return eval(str(x)+op+str(y))
那么表达式demo(3, 5, ‘*’)的值为{ 15 }。
38.已知函数定义
def demo(x, y, op):
return eval(str(x)+op+str(y))
那么表达式demo(3, 5, ‘-’)的值为{ -2 }。
39.假设有Python程序文件demo.py,代码如下。
def main():
if name == ‘main’:
print(1)
else:
print(2)
main()
将该程序文件直接运行时输出的结果为{ 1 },作为模块导入时得到的结果为{ 2 }。
40.自定义函数时,函数代码块以def关键字开头,后接函数标识符名称和{ 圆括号 }。
47.表达式len(range(1, 10))的值为{ 9 }。
51.假设math标准库已导入,表达式eval(‘math.sqrt(9)’)的值为{ 3.0 }。
52.假设math标准库已导入,表达式eval(‘math.sqrt(32+42)’)的值为{ 5.0 }。
53.假设math标准库已导入,表达式eval(‘math.sqrt(4)’)的值为{ 2.0 }。
54.表达式len([i for i in range(10)])的值为{ 10 }。
55.表达式len(range(1,10))的值为{ 9 }。
(三)判断题
1.Python扩展库需要导入以后才能使用其中的对象,Python标准库不需要导入即可使用其中的所有对象和方法。( 错 )
2.调用函数时,在实参前面加一个星号“*”表示序列解包。( 对 )
3.尽管可以使用import语句一次导入任意多个标准库或扩展库,但是仍建议每次只导入一个标准库或扩展库。( 对 )
4.函数是代码复用的一种方式。( 对 )
5.定义函数时,即使该函数不需要接收任何参数,也必须保留一对空的圆括号来表示这是一个函数。( 对 )
6.编写函数时,一般建议先对参数进行合法性检查,然后再编写正常的功能代码。( 对 )
7.一个函数如果带有默认值参数,那么必须所有参数都设置默认值。( 错 )
8.定义Python函数时必须指定函数返回值类型。( 错 )
9.定义Python函数时,如果函数中没有return语句,则默认返回空值None。( 对 )
11.函数中必须包含return语句。( 错 )
12.函数中的return语句一定能够得到执行。( 错 )
13.在函数内部直接修改形参的值并不影响外部实参的值。( 对 )
14.没有任何方法可以在函数内部通过形参影响实参的值。( 错 )
15.调用带有默认值参数的函数时,不能为默认值参数传递任何值,必须使用函数定义时设置的默认值。( 错 )
16.形参可以看作函数内部的局部变量,函数运行结束之后形参就不可访问了。( 对 )
18.Python标准库random的方法randint(m,n)用于生成一个[m,n]区间上的随机整数。( 对 )
19.在Python中定义函数时不需要声明函数参数的类型。( 对 )
20.在Python中定义函数时不需要声明函数的返回值类型。( 对 )
21.在定义函数时,某个参数名字前面带有一个*符号表示可变长度参数,可以接收任意多个普通实参并存放于一个元组之中。( 对 )
22.在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个关键参数并将其存放于一个字典之中。( 对 )
23.在定义函数时,带有默认值的参数必须出现在参数列表的最右端,任何一个带有默认值的参数右边不允许出现没有默认值的参数。( 对 )
24.在调用函数时,可以通过关键字参数的形式进行传值,从而避免必须记住函数形参顺序的麻烦。( 对 )
25.在调用函数时,必须牢记函数形参顺序才能正确传值。( 错 )
26.调用函数时传递的实参个数必须与函数形参个数相等才行。( 错 )
28.执行语句from math import sin之后,可以直接使用sin()函数,例如 sin(3)。( 对 )
31.使用random模块的函数randint(1, 100)获取随机数时,有可能会得到100。( 对 )
32.如果只需要math模块中的sin()函数,建议使用from math import sin来导入,而不要使用import math导入整个模块。( 对 )
33.内置函数len()返回指定序列的元素个数,适用于列表、元组、字典、集合、字符串等迭代对象。( 对 )
37.假设random模块已导入,那么表达式random.sample(range(10), 20)的作用是生成20个不重复的整数。( 错 )
38.假设random模块已导入,那么表达式random.sample(range(10), 7)的作用是生成7个不重复的整数。( 对 )
单元7 文件操作与异常处理
(一)选择题
1.Python中,打开文本文件message.txt可以有多种方式,以下选项错误的是( D )。
A."demo\message.txt"
B."demo/message.txt"
C.r"demomessage.txt"
D."demomessage.txt"
2.打开的文件不存在时,会引发的异常是( A )。
A.IOError
B.ImportError
C.IndentationError
D.IndexError
3.无法引入模块或包引发的异常是( B )。
A.IOError
B.ImportError
C.IndentationError
D.IndexError
4.Python提供了seek()方法将文件指针移动到指定位置,seek(n,1)表示( B )。
A.从起始位置即文件首行首字符开始移动n个字符
B.从当前位置往后移动n个字符
C.从文件的结尾位置往前移动n个字符
D.从起始位置即文件首行首字符开始移动n+1个字符
5.Python中,使用open()方法打开一个文件后,可以读取该文件中的内容,读取文件内容的方式有多种,其中每次只能读取一行的是( D )。
A.readlines()
B.read()
C.readall()
D.readline()
6.Python中,os模块提供了创建文件夹的方法,一次创建多级文件夹使用( B )方法。
A.mkdir()
B.makedirs()
C.walk()
D.tell()
7.以下选项不会影响Python程序的正常运行的是( D )。
A.拼写错误
B.错误表达式
C.缩进错误
D.手动抛出异常
8.有关异常说法正确的是( B )。
A.程序中抛出异常会终止程序
B.程序中抛出异常不一定会终止程序
C.拼写错误会导致程序终止
D.缩进错误会导致程序终止
9.对以下程序描述错误的是( A )。
try:
# 语句块1
except IndexError as err:
# 语句块2
A.该程序对异常进行了处理,因此一定不会终止程序
B.该程序对异常进行了处理,不一定不会因异常引发终止
C.语句块1如果抛出IndexError异常,则不会因为异常终止程序
D.语句块2不一定会执行
(二)填空题
3.Python内置函数{ open() }用于打开或创建文件并返回文件对象。
4.使用{ with }语句可以自动管理文件对象,不论何种原因结束该语句中的语句体,都能保证文件被正确关闭。
5.Python os模块中用来列出指定文件夹中的文件和子文件夹列表的方式是{ listdir() }。
10.已知当前文件夹中有纯英文文本文件readme.txt,以下代码的功能为把readme.txt文件中的所有内容复制到dst.txt中,请将其填写完整。
with open(‘readme.txt’) as src
open(‘dst.txt’ , { ’w’ }) as dst:
dst.write(src read())
(三)判断题
2.使用内置函数open()且以“w”模式打开的文件,文件指针默认指向文件尾。( 错 )
3.使用内置函数open()打开文件时,只要文件路径正确就总是可以正确打开文件。( 错 )
4.对文件进行读写操作之后必须显式关闭文件以确保所有内容都得到保存。( 对 )
6.在try…except…else语句中,如果try语句块引发了异常则会执行else语句块中的代码。( 错 )
7.异常处理结构中的finally语句块中的代码仍然有可能出错,从而再次引发异常。( 对 )
9.二进制文件不能使用记事本程序打开。( 错 )
10.使用普通文本编辑器可以正常查看二进制文件的内容。( 错 )
11.二进制文件可以使用记事本或其他文本编辑器打开,但是一般来说无法正常查看其中的内容。( 对 )
16.异常处理结构不是万能的,处理异常的代码也有引发异常的可能。( 对 )
17.在异常处理结构中,不论是否发生异常,finally子句中的代码总会执行。( 对 )
21.文件对象的tell()方法用来返回文件指针的当前位置。( 对 )
22.以写模式打开的文件无法进行读操作。( 对 )
24.以读模式打开文件时,文件指针指向文件开始处。( 对 )
25.以追加模式打开文件时,文件指针指向文件尾。( 对 )
26.文本文件是可以迭代的,可以使用类似for line in fp的语句遍历文件对象fp中的每一行。( 对 )
27.Python的主程序文件Python.exe属于二进制文件。( 对 )
28.已知当前文件夹中有一个文件readme.txt具有只读属性,假设os模块已正确导入,那么可以通过语句os.chmod(‘readme.txt’ , 0o777)来删除该文件的只读属性。( 对 )
29.Python os模块中的方法remove()不能删除具有只读属性的文件。( 对 )
30.由于异常处理结构try…except…finally中finally子句的语句块总是被执行的,所以把关闭文件的代码放到finally语句块里肯定是万无一失的,一定能保证文件被正确关闭并且不会引发任何异常。( 错 )

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/142365.html