Python程序设计—第三章
一. 填空题(共245题,73.5分)
1. Python标准库math中用来计算平方根的函数是________。
- 答案:sqrt
2. 在Python中________表示空类型。
- 答案:None
3. 列表、元组、字符串是Python的________(有序?无序)序列。
- 答案:有序
4. 查看变量类型的Python内置函数名是________。
- 答案:type
5. 查看变量内存地址的Python内置函数名是________。
- 答案:id
6. 以3为实部4为虚部,Python复数的表达形式为________或________。
- 答案:3+4j 或 3+4J
7. Python运算符中用来计算整商的是________。
- 答案://
8. Python运算符中用来计算集合并集的是________。
- 答案:|
- 解析:集合间运算请参考
9. 使用运算符测试集合包含集合A是否为集合B的真子集的表达式可以写作________。
- 答案:A<B
10. ________命令既可以删除列表中的一个元素,也可以删除整个列表。
- 答案:del
11. 表达式int('123',16)的值为________。
- 答案:291
- 解析:表示以16进制看待’123‘字符串,输出对应十进制整数,即:3 * 160+2 * 161 +1 * 162 =3+32+256=291。
12. 表达式int('123',8)的值为________。
- 答案:83
13. 表达式int('123')的值为________。
- 答案:123
14. 表达式int('101',2)的值为________。
- 答案:5
15. 表达式abs(-3)的值为________。
- 答案:3
16. Python3.x语句print(1,2,3,sep=':')的输出结果为________。
- 答案:1:2:3
17. 表达式int(4**0.5)的值为________。
- 答案:2
18. Python内置函数________可以返回列表、元组、字典、集合、字符串以及range对象中元素个数。
- 答案:len( )
19. Python内置函数________用来返回序列中的最大元素。
- 答案:max()
20. Python内置函数________用来返回序列中的最小元素。
- 答案:min()
21. Python内置函数________用来返回数值型序列中所有元素之和。
- 答案:sum()
- 解析:python序列包括字符串,列表,元组,字典,集合。对字典直接使用max(),sum(),min()只对键起作用。
22. 已知x=3,那么执行语句x+=6之后,x的值为________。
- 答案:9
23. 表达式3|5的值为________。
- 答案:7
- 解析:按位或。运算规则:
0|0=0; 0|1=1; 1|0=1; 1|1=1
。所以,0b11|0b101=0b111=7
24. 表达式3&6的值为________。
- 答案:2
- 解析:按位与。运算规则:
0&0=0;0&1=0;1&0=0;1&1=1
。所以,0b11&0b110=0b10=2
25. 表达式3**2的值为________。
- 答案:9
26. 表达式3*2的值为________。
- 答案:6
27. 表达式3<<2的值为________。
- 答案:12
- 解析:左移位运算符,0b11<<2=0b1100=12
28. 表达式65>>1的值为________。
- 答案:32
- 解析:右移运算符 0b1000001>>1=0b100000=32
29. 表达式chr(ord('a')^32)的值为________。
- 答案:'A'
- 解析:按位异或运算符,运算规则:
0^0=0; 0^1=1; 1^0=1; 1^1=0
。0b1100001^0b100000=0b1000001=65,即chr(65)='A'
30. 表达式chr(ord('a')-32)的值为________。
- 答案:'A'
31. 表达式abs(3+4j)的值为________。
-
答案:5.0
-
解析:返回复数的模,即
[sqrt{3^2+4^2} ]
32. 表达式callable(int)的值为________。
- 答案:True
- 解析:callable用于检查对象是否可以被调用。具体用法参考
33. 假设有Python程序文件abc.py,其中只有一条语句print(name),那么直接运行该程序时得到的结果为________。
- 答案:
__main__
34. 表达式16**0.5的值为________。
- 答案:4.0
35. 表达式type({3})的值为________。
- 答案:set
36. 表达式isinstance('Hello world',str)的值为________。
- 答案:True
37. 表达式[1,2,3]*3的执行结果为________。
- 答案:[1, 2, 3, 1, 2, 3, 1, 2, 3]
38. list(map(str,[1,2,3]))的执行结果为________。
- 答案:['1', '2', '3']
- 解析:Python序列类型包括列表,元组,字典。map()函数传入一个或多个序列,返回迭代器。
39. 语句x=3==3,5执行结束后,变量x的值为________。
- 答案:(True, 5)
40. 已知x=3,并且id(x)的返回值为496103280,那么执行语句x+=6之后,表达式id(x)==496103280的值为________。
- 答案:False
41. 已知x=3,那么执行语句x*=6之后,x的值为________。
- 答案:18
42. 表达式[3] in [1,2,3,4]的值为________。
- 答案:False
43. 列表对象的sort()方法用来对列表元素进行原地排序,该函数返回值为________。
- 答案:None
44. 假设列表对象aList的值为[3,4,5,6,7,9,11,13,15,17],那么切片aList[3:7]得到的值是________。
- 答案:[6, 7, 9, 11]
45. 使用列表推导式生成包含10个数字5的列表,语句可以写为________。
- 答案:[5 for i in range(10)]
46. 假设有列表a=['name','age','sex']和b=['Dong',38,'Male'],请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为________。
- 答案:c=dict(zip(a,b))
- 解析:zip()函数传入一个或多个可迭代对象,返回迭代器。
47. 任意长度的Python列表、元组和字符串中最后一个元素的下标为。
- 答案:-1
48. Python语句list(range(1,10,3))执行结果为________。
- 答案:[1,4,7]
49. 表达式list(range(5))的值为________。
- 答案:[0, 1, 2, 3, 4]
50. 已知a=[1,2,3]和b=[1,2,4],那么id(a[1])==id(b[1])的执行结果为________。
- 答案:True
51. 切片操作list(range(6))[::2]执行结果为________。
- 答案:[0, 2, 4]
52. 使用切片操作在列表对象x的开始处增加一个元素3的代码为________。
- 答案:x[0:0]=[3]
53. 语句sorted([1,2,3],reverse=True)==reversed([1,2,3])执行结果为________。
- 答案:False
- 解析:sorted()返回一个新的列表,reversed()返回一个迭代器。
54. 表达式sorted([111,2,33],key=lambda x:len(str(x)))的值为________。
- 答案:[2,33,111]
55. 表达式sorted([111,2,33],key=lambda x:-len(str(x)))的值为________。
- 答案:[111,33,2]
56. 语句x=(3,)执行后x的值为________。
- 答案:(3,)
57. 语句x=(3)执行后x的值为________。
- 答案:3
58. 已知x=3和y=5,执行语句x,y=y,x后x的值是________。
- 答案:5
- 解析:交换x,y的值。等号左侧多个变量一起赋值是Python特殊的赋值方式。会自动分析右侧的可迭代对象然后一次性赋值,如x,y,z=[1,2,3]。
59. 可以使用内置函数________查看包含当前作用域内所有全局变量和值的字典。
- 答案:globals()
60. 可以使用内置函数________查看包含当前作用域内所有局部变量和值的字典。
- 答案:locals()
61. 字典中多个元素之间使用______分隔开,每个元素的“键”与“值”之间使用_____分隔开。(使用中文)
- 答案:(1)逗号 (2) 冒号
62. 字典对象的________方法可以获取指定“键”对应的“值”,并且可以在指定“键”不存在的时候返回指定值,如果不指定则返回None。
- 答案:get()
- 解析:get()函数的语法为dict.get(key,default=None)。
63. 字典对象的________方法返回字典中的“键-值对”列表。
- 答案:items()
- 解析:items方法返回字典中的"键-值对"组成的元组的列表。
64. 字典对象的________方法返回字典的“键”列表。
- 答案:keys()
65. 字典对象的________方法返回字典的“值”列表。
- 答案:values()
66. 已知x={1:2},那么执行语句x[2]=3之后,x的值为________。
- 答案:{1: 2, 2: 3}
67. 表达式{1,2,3,4}-{3,4,5,6}的值为________。
- 答案:{1, 2}
- 解析:set1-set2返回set1有但是set2没有的元素。
68. 表达式set([1,1,2,3])的值为________。
- 答案:{1, 2, 3}
69. 使用列表推导式得到100以内所有能被13整除的数的代码可以写作________。
- 答案:[i for i in range(100) if i%13==0]
70. 已知x=[3,5,7],那么表达式x[10:]的值为________。
- 答案:[]
- 解析:切片操作超出下标并不会报错而是返回空列表。
71. 已知x=[3,5,7],那么执行语句x[len(x):]=[1,2]之后,x的值为________。
- 答案:[3,5,7,1,2]
72. 已知x=[3,7,5],那么执行语句x.sort(reverse=True)之后,x的值为________。
- 答案:[7, 5, 3]
- 解析:sorted()和list.sort()不同,区别在于:1.前者不是原地排序,原列表不变。后者是原地排序,原列表改变;2.前者返回值是一个排序后的新列表。后者没有返回值。
73. 已知x=[3,7,5],那么执行语句x=x.sort(reverse=True)之后,x的值为________。
- 答案:None
74. 已知x=[1,11,111],那么执行语句x.sort(key=lambda x:len(str(x)),reverse=True)之后,x的值为________。
- 答案:[111,11,1]
75. 已知x=[1,2,3,2,3],执行语句x.pop()之后,x的值为________。
- 答案:[1,2,3,2]
- 解析:列表的pop方法的参数要移除的元素的索引值,如果不填默认为最后一个元素。返回值为移除元素。
76. 表达式list(map(list,zip(*[[1,2,3],[4,5,6]])))的值为________。
- 答案:[[1, 4], [2, 5], [3, 6]]
- 解析:'*'操作符可以理解为解包的意思。具体参考
77. 表达式[xforxin[1,2,3,4,5]ifx<3]的值为________。
- 答案:[1, 2]
78. 表达式[index for index,value in enumerate([3,5,7,3,7]) if value==max([3,5,7,3,7])]的值为________。
- 答案:[2, 4]
- 解析:enumerate()函数的用法参考
79. 已知x=[3,5,3,7],那么表达式[x.index(i) for i in x if i==3]的值为________。
- 答案:[0, 0]
- 解析:列表的index方法只会返回第一个匹配项的索引位置。
80. 已知列表x=[1,2],那么表达式list(enumerate(x))的值为________。
- 答案:[(0, 1), (1, 2)]
81. 已知vec=[[1,2],[3,4]],则表达式[col for row in vec for col in row]的值为________。
- 答案:[1, 2, 3, 4]
82. 已知vec=[[1,2],[3,4]],则表达式[[row[i] for row in vec] for i in range(len(vec[0]))]的值为________。
- 答案:[[1, 3], [2, 4]]
83. 已知x=list(range(10)),则表达式x[-4:]的值为________。
- 答案:[6, 7, 8, 9]
84. 已知x=[3,5,7],那么执行语句x[1:]=[2]之后,x的值为________。
- 答案:[3, 2]
85. 已知x=[3,5,7],那么执行语句x[:3]=[2]之后,x的值为________。
- 答案:[2]
86. 已知x为非空列表,那么执行语句y=x[:]之后,id(x[0])==id(y[0])的值为________。
- 答案:True
87. 已知x=[1,2,3,2,3],执行语句x.remove(2)之后,x的值为________。
- 答案:[1, 3, 2, 3]
- 解析:remove()方法只会移除第一个匹配项。
88. 表达式len([i for i in range(10)])的值为________。
- 答案:10
89. 表达式len(range(1,10))的值为________。
- 答案:9
90. 表达式range(10)[-1]的值为________。
- 答案:9
91. 已知x={'a':'b','c':'d'},那么表达式'b' in x的值为________。
- 答案:False
92. 已知x={'a':'b','c':'d'},那么表达式'b 'in x.values()的值为________。
- 答案:True
93. 表达式1<2<3的值为________。
- 答案:True
94. 表达式3 or 5的值为________。
- 答案:3
95. 表达式0 or 5的值为________。
- 答案:5
96. 表达式3 and 5的值为________。
- 答案:5
97. 表达式3 and not 5的值为________。
- 答案:False
98. Python3.x语句print(1,2,3,sep=',')的输出结果为________。
- 答案:1,2,3
99. 表达式range(10,20)[4]的值为________。
- 答案:14
100. 表达式round(3.4)的值为________。
- 答案:3
- 解析:round()返回浮点数的四舍五入值。
101. 表达式round(3.7)的值为________。
- 答案:4
102. 已知x=(3),那么表达式x*3的值为________。
- 答案:9
103. 已知x=(3,),那么表达式x*3的值为________。
- 答案:(3, 3, 3)
104. 假设列表对象x=[1,1,1],那么表达式id(x[0])==id(x[2])的值为________。
- 答案:True
105. 已知列表x=list(range(10)),那么执行语句delx[::2]之后,x的值为________。
- 答案:[1, 3, 5, 7, 9]
106. 已知列表x=[1,2,3,4],那么执行语句del x[1]之后x的值为________。
- 答案:[1, 3, 4]
107. 表达式[1]*2的值为________。
- 答案:[1, 1]
108. 表达式[1,2]*2的值为________。
- 答案:[1, 2, 1, 2]
109. 已知列表x=[1,2,3],那么执行语句x.insert(1,4)只有,x的值为________。
- 答案:[1, 4, 2, 3]
110. 已知列表x=[1,2,3],那么执行语句x.insert(0,4)只有,x的值为________。
- 答案:[4, 1, 2, 3]
111. 已知列表x=[1,2,3],那么执行语句x.pop(0)之后,x的值为________。
- 答案:[2,3]
112. 已知x=[[1]]*3,那么执行语句x[0][0]=5
之后,变量x的值为________。
- 答案:[[5], [5], [5]]
113. 表达式list(map(lambda x:x+5,[1,2,3,4,5]))的值为________。
- 答案:[6, 7, 8, 9, 10]
114. 表达式{1,2,3,4,5}^{4,5,6,7}的值为________。
- 答案:{1, 2, 3, 6, 7}
- 解析:set1^set2返回二者的对称差集,该集中元素是set1或者set2的元素但不是set1和set2都有的元素。
115. 已知x=[1,2,3],那么执行语句x[len(x)-1:]=[4,5,6]之后,变量x的值为________。
- 答案:[1, 2, 4, 5, 6]
116. 已知x是一个列表对象,那么执行语句y=x[:]之后表达式id(x)==id(y)的值为________。
- 答案:False
117. 表达式sorted([13,1,237,89,100],key=lambda x:len(str(x)))的值为________。
- 答案:[1, 13, 89, 237, 100]
118. 已知x={1:2,2:3},那么表达式x.get(3,4)的值为________。
- 答案:4
119. 已知x={1:2,2:3},那么表达式x.get(2,4)的值为________。
- 答案:3
120. 表达式{1,2,3} | {3,4,5}的值为________。
- 答案:{1, 2, 3, 4, 5}
- 解析:set1|set2为求二者的并集,把两个集合合并。
121. 表达式{1,2,3} | {2,3,4}的值为________。
- 答案:{1, 2, 3, 4}
122. 表达式{1,2,3} & {3,4,5}的值为________。
- 答案:{3}
- 解析:set1&set2为求二者的交集,即两个集合共有的元素。
123. 表达式{1,2,3} & {2,3,4}的值为________。
- 答案:{2, 3}
124. 表达式{1,2,3} - {3,4,5}的值为________。
- 答案:{1, 2}
- 解析:
125. 表达式{1,2,3} < {3,4,5}的值为________。
- 答案:False
- 解析:set1<set2判断set1是否为set2的子集。
126. 表达式{1,2,3} < {1,2,4}的值为________。
- 答案:False
127. 表达式[1,2,3].count(4)的值为________。
- 答案:0
128. Python标准库random中的________方法作用是从序列中随机选择1个元素。
- 答案:choice()
129. Python标准库random中的sample(seq,k)方法作用是从序列中选择(重复?不重复?)的k个元素。
- 答案:不重复
130. random模块中________方法的作用是将列表中的元素随机乱序。
- 答案:shuffle()
131. 执行代码x,y,z=sorted([1,3,2])之后,变量y的值为________。
- 答案:2
132. 表达式(1,2,3)+(4,5)的值为________。
- 答案:(1,2,3,4,5)
133. 表达式dict(zip([1,2],[3,4]))的值为________。
- 答案:{1: 3, 2: 4}
134. 语句x,y,z=[1,2,3]执行后,变量y的值为________。
- 答案:2
135. 已知x=[[1,3,3],[2,3,1]],那么表达式sorted(x,key=lambda item:item[0]+item[2])的值为________。
- 答案:[[2, 3, 1], [1, 3, 3]]
136. 已知x=[[1,3,3],[2,3,1]],那么表达式sorted(x,key=lambda item:(item[1],item[2]))的值为________。
- 答案:[[2, 3, 1], [1, 3, 3]]
137. 已知x=[[1,3,3],[2,3,1]],那么表达式sorted(x,key=lambda item:(item[1],-item[2]))的值为________。
- 答案:[[1, 3, 3],[2, 3, 1]]
138. 已知x={1,2,3},那么执行语句x.add(3)之后,x的值为________。
- 答案:{1, 2, 3}
139. 已知x={1:1},那么执行语句x[2]=2之后,len(x)的值为________。
- 答案:2
140. 已知x={1:1,2:2},那么执行语句x[2]=4之后,len(x)的值为________。
- 答案:2
141. 假设已从标准库functools导入reduce()函数,那么表达式reduce(lambda x,y:x-y,[1,2,3])的值为________。
- 答案:-4
- 解析:reduce函数的用法参考
142. 假设已从标准库functools导入reduce()函数,那么表达式reduce(lambda x,y:x+y,[1,2,3])的值为________。
- 答案:6
143. 假设已从标准库functools导入reduce()函数,那么表达式reduce(lambda x,y:max(x,y),[1,2,3,4,4,5])的值为________。
- 答案:5
144. 已知有函数定义def demo(*p):return sum(p),那么表达式demo(1,2,3)的值为________、表达式demo(1,2,3,4)的值为________。
- 答案:(1)6 (2) 10
145. 已知列表x=[1,2],那么连续执行命令y=x和y.append(3)之后,x的值为________。
- 答案:[1, 2, 3]
- 解析:append函数会在数组后加上相应的元素。具体参考
146. 已知列表x=[1,2],那么连续执行命令y=x[:]和y.append(3)之后,x的值为________。
- 答案:[1, 2]
147. 已知列表x=[1,2],执行语句y=x[:]后,表达式id(x)==id(y)的值为________。
- 答案:False
148. 已知列表x=[1,2],执行语句y=x后,表达式id(x)==id(y)的值为________。
- 答案:True
149. 已知列表x=[1,2],执行语句y=x后,表达式x is y的值为________。
- 答案:True
150. 已知列表x=[1,2],执行语句y=x[:]后,表达式x is not y的值为________。
- 答案:True
151. 表达式sorted(random.sample(range(5),5))的值为________。
- 答案:[0, 1, 2, 3, 4]
152. 表达式[i for i in range(10) if i>8]的值为________。
- 答案:[9]
153. 已知有列表x=[[1,2,3],[4,5,6]],那么表达式[[row[i] forrowinx]for i in range(len(x[0]))]的值为________。
- 答案:[[1, 4], [2, 5], [3, 6]]
154. 执行语句x,y,z=map(str,range(3))之后,变量y的值为________。
- 答案:'1'
155. 已知列表x=[1,2],那么执行语句x.extend([3])之后,x的值为________。
- 答案:[1, 2, 3]
- 解析:extend()的参数为一个可迭代对象。
156. 已知列表x=[1,2],那么执行语句x.append([3])之后,x的值为________。
- 答案:[1, 2, [3]]
157. 表达式print(0b10101)的值为________。
- 答案:21
158. 已知x=[1,2,3,4,5],那么执行语句del x[:3]之后,x的值为________。
- 答案:[4, 5]
159. 已知x=range(1,4)和y=range(4,7),那么表达式sum([i*j for i,j in zip(x,y)])的值为________。
- 答案:32
160. 表达式[5 for i in range(3)]的值为________。
- 答案:[5, 5, 5]
161. 表达式{1,2,3}=={1,3,2}的值为________。
- 答案:True
162. 表达式[1,2,3]==[1,3,2]的值为________。
- 答案:False
163. 已知x=[1,2,1],那么表达式id(x[0])==id(x[2])的值为________。
- 答案:True
164. 表达式3 not in [1,2,3]的值为________。
- 答案:False
165. 已知x=[1,2],那么执行语句x[0:0]=[3,3]之后,x的值为________。
- 答案:[3, 3, 1, 2]
166. 已知x=[1,2],那么执行语句x[0:1]=[3,3]之后,x的值为________。
- 答案:[3, 3, 2]
167. 已知x=[1,2,3,4,5],那么执行语句del x[1:3]之后,x的值为________。
- 答案:[1, 4, 5]
168. 已知x=[[1,2,3,],[4,5,6]],那么表达式sum([i*j for i,j in zip(*x)])
的值为________。
- 答案:32
169. 已知列表x=[1,2,3]和y=[4,5,6],那么表达式[(i,j) for i,j in zip(x,y) if i==3]的值为________。
- 答案:[(3, 6)]
170. 已知列表x=[1.0,2.0,3.0],那么表达式sum(x)/len(x)的值为________。
- 答案:2.0
- 解析:len() 方法返回对象(字符、列表、元组等)长度或项目个数。sum() 方法对序列进行求和计算。
171. 已知x={1:2,2:3,3:4},那么表达式sum(x)的值为________。
- 答案:6
- 解析:sum对字典使用是字典key值相加。即1+2+3=6
172. 已知x={1:2,2:3,3:4},那么表达式sum(x.values())的值为________。
- 答案:9
173. 已知x=[3,2,3,3,4],那么表达式[index for index,value in enumerate(x) if value==3]的值为________。
- 答案:[0, 2, 3]
174. 表达式1234%1000//100的值为________。
- 答案:2
175. 表达式3//5的值为________。
- 答案:0
176. 表达式[1,2]+[3]的值为________。
- 答案:[1, 2, 3]
177. 表达式(1,)+(2,)的值为________。
- 答案:(1, 2)
178. 表达式(1)+(2)的值为________。
- 答案:3
179. 已知x,y=map(int,['1','2']),那么表达式x+y的值为________。
- 答案:3
180. 已知列表x=list(range(5)),那么执行语句x.remove(3)之后,表达式x.index(4)的值为________。
- 答案:3
181. 已知列表x=[1,3,2],那么执行语句x.reverse()之后,x的值为________。
- 答案:[2, 3, 1]
182. 已知列表x=[1,3,2],那么执行语句x=x.reverse()之后,x的值为________。
- 答案:None
183. 已知x为非空列表,那么表达式x.reverse()==list(reversed(x))的值为________。
- 答案:False
184. 已知x为非空列表,那么表达式x.sort()==sorted(x)的值为________。
- 答案:False
185. 已知列表x=[1,3,2],那么执行语句y=list(reversed(x))之后,x的值为________。
- 答案:[1, 3, 2]
186. 已知列表x=[1,3,2],那么执行语句y=list(reversed(x))之后,y的值为________。
- 答案:[2, 3, 1]
187. 已知列表x中包含超过5个以上的元素,那么表达式x==x[:5]+x[5:]的值为________。
- 答案:True
188. 已知字典x={i:str(i+3) for i in range(3)},那么表达式sum(x)的值为________。
- 答案:3
189. 已知字典x={i:str(i+3) for i in range(3)},那么表达式sum(item[0] for item in x.items())的值为________。
- 答案:3
190. 已知字典x={i:str(i+3) for i in range(3)},那么表达式''.join([item[1] for item in x.items()])的值为________。
- 答案:'345'
191. 已知列表x=[1,3,2],那么表达式[value for index,value in enumerate(x) if index==2]的值为________。
- 答案:[2]
192. 已知列表x=[1,3,2],那么执行语句a,b,c=sorted(x)之后,b的值为________。
- 答案:2
193. 已知列表x=[1,3,2],那么执行语句a,b,c=map(str,sorted(x))之后,c的值为________。
- 答案:'3'
194. 表达式set([1,2,3])=={1,2,3}的值为________。
- 答案:True
195. 表达式set([1,2,2,3])=={1,2,3}的值为________。
- 答案:True
196. 表达式'%c'%65==str(65)的值为________。
- 答案:False
197. 表达式'%s'%65==str(65)的值为________。
- 答案:True
198. 表达式chr(ord('b')^32)的值为________。
- 答案:'B'
199. 表达式'abc' in 'abdcefg'的值为________。
- 答案:False
200. 已知x为整数变量,那么表达式int(hex(x),16)==x的值为________。
- 答案:True
- 解析:hex()函数参数为一个十进制数,返回十六进制数,以字符串形式表示。int()函数的用法参考
201. 已知x,y=3,5,那么执行x,y=y,x之后,x的值为________。
- 答案:5
202. 已知x='abcd'和y='abcde',那么表达式[i==j for i,j in zip(x,y)]的值为________。
- 答案:[True, True, True, True]
203. 已知x=list(range(20)),那么表达式x[-1]的值为________。
- 答案:19
204. 已知x=3+4j和y=5+6j,那么表达式x+y的值为________。
- 答案:8+10j
205. 已知x=[3],那么执行x+=[5]之后x的值为________。
- 答案:[3, 5]
206. 已知x=[3,3,4],那么表达式id(x[0])==id(x[1])的值为________。
- 答案:True
207. 表达式int('11',2)的值为________。
- 答案:3
208. 表达式int('11',8)的值为________。
- 答案:9
209. 表达式int(bin(54321),2)的值为________。
- 答案:54321
- 解析:bin传入一个整数int或者长整数long int,以二进制表示后用字符串返回。具体参考
210. 表达式chr(ord('A')+1)的值为________。
- 答案:'B'
211. 表达式int(str(34))==34的值为________。
- 答案:True
212. 表达式list(str([3,4]))==[3,4]的值为________。
- 答案:False
213. 表达式{1,2,3,4,5,6} ^ {5,6,7,8}的值为________。
- 答案:{1, 2, 3, 4, 7, 8}
214. 表达式15//4的值为________。
- 答案:3
215. 表达式sorted({'a':3,'b':9,'c':78})的值为________。
- 答案:['a', 'b', 'c']
- 解析:sorted对字典进行排序时默认根据字典的键值与ASCII码顺序升序排列。
216. 表达式sorted({'a':3,'b':9,'c':78}.values())的值为________。
- 答案:[3, 9, 78]
217. 已知x=[3,2,4,1],那么执行语句x=x.sort()之后,x的值为________。
- 答案:None
218. 表达式list(filter(lambda x:x>5,range(10)))的值为________。
- 答案:[6, 7, 8, 9]
- 解析:filter函数的用法参考
219. 已知x=list(range(20)),那么语句print(x[100:200])的输出结果为________。
- 答案:[]
220. 已知x=list(range(20)),那么执行语句x[:18]=[]后列表x的值为________。
- 答案:[18, 19]
221. 已知x=[1,2,3],那么连续执行y=x[:]和y.append(4)这两条语句之后,x的值为________。
- 答案:[1, 2, 3]
222. 已知x=[1,2,3],那么连续执行y=x和y.append(4)这两条语句之后,x的值为________。
- 答案:[1, 2, 3, 4]
223. 已知x=[1,2,3],那么连续执行y=[1,2,3]和y.append(4)这两条语句之后,x的值为________。
- 答案:[1, 2, 3]
224. 已知x=[[]]*3,那么执行语句x[0].append(1)之后,x的值为________。
- 答案:[[1], [1], [1]]
225. 已知x=[[] for i in range(3)],那么执行语句x[0].append(1)之后,x的值为________。
- 答案:[[1], [], []]
226. 已知x=([1],[2]),那么执行语句x[0].append(3)后x的值为________。
- 答案:([1, 3], [2])
227. 已知x={1:1,2:2},那么执行语句x.update({2:3,3:3})之后,表达式sorted(x.items())的值为________。
- 答案:[(1, 1), (2, 3), (3, 3)]
228. 已知x={1:1,2:2},那么执行语句x[3]=3之后,表达式sorted(x.items())的值为________。
- 答案:[(1, 1), (2, 2), (3, 3)]
229. 已知x=[1,2,3],那么表达式not (set(x*100) - set(x))的值为________。
- 答案:True
230. 已知x=[1,2,3],那么表达式not (set(x*100) & set(x))的值为________。
- 答案:False
231. 表达式{'x':1,**{'y':2}}的值为________。
- 答案:{'x': 1, 'y': 2}
232. 表达式{range(4),4,(5,6,7)}的值为________。
- 答案:{0, 1, 2, 3, 4, 5, 6, 7}
233. 已知x=[1,2,3,4,5],那么执行语句x[::2]=range(3)之后,x的值为________。
- 答案:[0, 2, 1, 4, 2]
234. 已知x=[1,2,3,4,5],那么执行语句x[::2]=map(lambda y:y!=5,range(3))之后,x的值为________。
- 答案:[True, 2, True, 4, True]
235. 已知x=[1,2,3,4,5],那么执行语句x[1::2]=sorted(x[1::2],reverse=True)之后,x的值为________。
- 答案:[1, 4, 3, 2, 5]
236. 表达式True * 3的值为________。
- 答案:3
237. 表达式False + 1的值为________。
- 答案:1
238. 表达式'ab' in 'acbed'的值为________。
- 答案:False
239. 假设n为整数,那么表达式n & 1==n % 2的值为________。
- 答案:True
240. 关键字用于测试一个对象是否是一个可迭代对象的元素________。
- 答案:in
241. 表达式3<8>2的值为________。
- 答案:True
242. 已知x={'a':'b','c':'d'},那么表达式'a' in x的值为________。
- 答案:True
243. Python中用于表示逻辑与、逻辑或、逻辑非运算的关键字分别是________、、。
- 答案:(1)and (2) or (3) not
244.Python3.x语句for i in range(3):print(i,end=',')的输出结果为________。
- 答案:0,1,2,
245. 表达式list(zip([1,2],[3,4]))的值为________。
- 答案:[(1, 3), (2, 4)]
二. 判断题(共77题,26.5分)
246. Python字典中的“键”可以是元组。
- 答案:对
- 解析:字典的“键”必须是不可变的。不可变序列包括字符串,元组,数字。可变序列包括列表,字典,集合。
247. Python列表中所有元素必须为相同类型的数据。
- 答案:错
248. Python列表、元组、字符串都属于有序序列。
- 答案:对
249. 已知A和B是两个集合,并且表达式A|B的值一定为True。
- 答案:错
250. 列表对象的append()方法属于原地操作,用于在列表尾部追加一个元素。
- 答案:对
251. 对于列表而言,在尾部追加元素比在中间位置插入元素速度更快一些,尤其是对于包含大量元素的列表。
- 答案:对
252. 假设有非空列表x,那么x.append(3)、x=x+[3]与x.insert(0,3)在执行时间上基本没有太大区别。
- 答案:错
253. 使用Python列表的方法insert()为列表插入元素时会改变列表中插入位置之后元素的索引。
- 答案:对
254. 假设x为列表对象,那么x.pop()和x.pop(-1)的作用是一样的。
- 答案:对
- 解析:pop()用于删除并返回指定位置(默认是最后一个)上的元素,如果指定的位置不是合法的索引则抛出异常。
255. 使用del命令或者列表对象的remove()方法删除列表中元素时会影响列表中部分元素的索引。
- 答案:对
256. 已知列表 x = [1, 2, 3],那么执行语句 x = 3 之后,变量x的地址不变。
- 答案:错
257. 使用列表对象的remove()方法可以删除列表中首次出现的指定元素,如果列中不存在要删除的指定元素则抛出异常。
- 答案:对
258. 元组是不可变的,不支持列表对象的inset()、remove()等方法,也不支持del命令删除其中的元素,但可以使用del命令删除整个元组对象。
- 答案:对
259. Python字典和集合属于无序序列。
- 答案:对
260. 无法删除集合中指定位置的元素,只能删除特定值的元素。
- 答案:对
261. 元组的访问速度比列表要快一些,如果定义了一系列常量值,并且主要用途仅仅是对其进行遍历二不需要进行任何修改,建议使用元组而不使用列表。
- 答案:对
262. 当以指定“键”为下标给字典对象赋值时,若该“键”存在则表示修改该“键”对应的“值”,若不存在则表示为字典对象添加一个新的“键-值对”。
- 答案:对
263. 假设x是含有5个元素的列表,那么切片操作x[10:]是无法执行的,会抛出异常。
- 答案:错
264. 只能对列表进行切片操作,不能对元组和字符串进行切片操作。
- 答案:错
265. 只能通过切片访问列表中的元素,不能使用切片修改列表中的元素。
- 答案:错
266. 只能通过切片访问元组中的元素,不能使用切片修改元组中的元素。
- 答案:对
267. 字符串属于Python有序序列,和列表、元组一样都支持双向索引。
- 答案:对
268. Python字典和集合支持双向索引。
- 答案:错
269. Python集合不支持使用下标访问其中的元素。
- 答案:对
270. 相同内容的字符串使用不同的编码格式进行编码得到的结果并不完全相同。
- 答案:对
271. 删除列表中重复元素最简单的方法是将其转换为集合后再重新转换为列表。
- 答案:对
272. 已知列表x中包含超过5个以上的元素,那么语句 x = x[:5]+x[5:] 的作用是将列表x中的元素循环左移5位。
- 答案:错
273. 对于生成器对象x = (3 for i in range(5)),连续两次执行list(x)的结果是一样的。
- 答案:错
274. 对于大量列表的连接,extend()方法比运算符+具有更高的效率。
- 答案:对
275. 表达式 {1, 3, 2} > {1, 2, 3} 的值为True。
- 答案:错
276. 列表对象的extend()方法属于原地操作,调用前后列表对象的地址不变。
- 答案:对
277. 对于数字n,如果表达式 0 not in [n%d for d in range(2, n)] 的值为True则说明n是素数。
- 答案:对
278. 表达式 ‘a’+1的值为’b’。
- 答案:错
279. 创建只包含一个元素的元组时,必须在元素后面加一个逗号,例如(3,)。
- 答案:对
280. 表达式 list('[1, 2, 3]') 的值是[1, 2, 3]。
- 答案:错
281. 同一个列表对象中的元素类型可以各不相同。
- 答案:对
282. 同一个列表对象中所有元素必须为相同类型。
- 答案:错
283. 已知x为非空列表,那么执行语句x[0] = 3之后,列表对象x的内存地址不变。
- 答案:对
284. 列表可以作为集合的元素。
- 答案:错
285. 集合可以作为列表的元素。
- 答案:对
286. 元组可以作为集合的元素。
- 答案:对
287. 集合可以作为元组的元素。
- 答案:对
288. 字典可以作为集合的元素。
- 答案:错
289. 集合可以作为字典的键。
- 答案:错
290. 集合可以作为字典的值。
- 答案:对
291. 可以使用del删除集合中的部分元素。
- 答案:错
292. 列表对象的pop()方法默认删除并返回最后一个元素,如果列表已空则抛出异常。
- 答案:对
293. 表达式 {1, 2} * 2 的值为 {1, 2, 1, 2}。
- 答案:错
294. Python字典支持双向索引。
- 答案:错
295. Python集合支持双向索引。
- 答案:错
296. Python元组支持双向索引。
- 答案:对
297. 假设re模块已成功导入,并且有 pattern = re.compile('^'+'.'.join([r'd{1,3}' for i in range(4)])+'$'),那么表达式 pattern.match('192.168.3.105') 的值为None。
- 答案:错
298. 假设random模块已导入,那么表达式 random.sample(range(10), 20) 的作用是生成20个不重复的整数。
- 答案:错
- 解析:这样会抛出异常。
299. 假设random模块已导入,那么表达式 ramdom.sample(range(10), 7) 的作用是生成7个不重复的整数。
- 答案:对
300. 使用random模块的函数randint(1, 100)获取随机数时,有可能会得到100。
- 答案:对
301. 已知x = (1, 2, 3, 4),那么执行x[0] = 5之后,x的值为(5, 2, 3, 4)。
- 答案:错
302. 已知x = 3,那么执行x += 6语句前后x的内存地址是不变的。
- 答案:错
303. 成员测试运算符in作用于集合时比作用于列表快得多。
- 答案:对
304. 内置函数len()返回指定序列的元素个数,适用于列表、元组、字符串、字典、集合以及range、zip等迭代对象。
- 答案:对
305. 已知x和y是两个等长的整数列表,那么表达式sum((i*j for i, j in zip(x, y)))的作用是计算这两个列表所表示的向量的内积。
- 答案:对
306. 已知x和y是两个等长的整数列表,那么表达式[i+j for i,j in zip(x,y)]的作用时计算这两个列表所表示的向量的和。
- 答案:对
307. 表达式int('1'*64, 2)与sum(2**i for i in range(64))的计算结果是一样的,但是前者更快一些。
- 答案:对
308. 已知x = list(range(20)),那么语句del x[::2]可以正常执行。
- 答案:对
309. 已知x = list(range(20)),那么语句x[::2] = []可以正常执行。
- 答案:错
310. 已知x = list(range(20)),那么语句print(x[100:200])无法正常执行。
- 答案:错
311. 已知x是个列表对象,那么执行语句y = x之后,对y所做的任何操作都会同样作用到x上。
- 答案:对
312. 已知x是个列表对象,那么执行语句y = x[:]之后,对y所做的任何操作都会同样作用到x上。
- 答案:错
313. 在Python中,变量不直接存储值,而是存储值的引用,也就是值在内存中的地址。
- 答案:对
314. 表达式(i**2 for i in range(100))的结果是个元组。
- 答案:错
- 解析:结果是一个生成器对象。
315. 在Python中元组的值是不可变的,因此,已知x = ([1], [2]),那么语句x[0].append(3)是无法正常执行的。
- 答案:错
316. Python内置的字典dict中元素是按添加的顺序依次进行存储的。
- 答案:错
317. Python内置的集合set中元素顺序是按元素的哈希值进行存储的,并不是按先后顺序。
- 答案:对
318. 已知x = {1:1, 2:2},那么语句x[3] =3无法正常执行。
- 答案:错
319. Python内置字典是无序的,如果需要一个可以记住元素插入顺序的字典,可以使用collections.OrderedDict。
- 答案:对
320. 已知列表x = [1, 2, 3, 4],那么表达式x.find(5)的值应为-1。
- 答案:错
- 解析:列表没有find方法,这是字符串用来寻找子串的方法。list只有index方法。
321. 列表对象的排序方法sort()只能按元素从小到大排列,不支持别的排序方式。
- 答案:错
322. 已知x是一个列表,那么x = x[3:] + x[:3]可以实现把列表x中的所有元素循环左移3位。
- 答案:对