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位。
- 答案:對