您的当前位置:首页正文

《Python程序设计》题库

2022-04-19 来源:意榕旅游网
.

《Python程序设计》题库

一、填空题 第一章 基础知识

1、 Python安装扩展库常用的是_______工具。(pip)

2、 Python标准库math中用来计算平方根的函数是__________。(sqrt)

3、 Python程序文件扩展名主要有__________和________两种,其中后者常用于GUI程序。

(py、pyw)

4、 Python源代码程序编译后的文件扩展名为_________。(pyc)

5、 使用pip工具升级科学计算扩展库numpy的完整命令是_________________。(pip install

--upgrade numpy)

6、 使用pip工具查看当前已安装的Python扩展库的完整命令是_____________。(pip list) 7、 在IDLE交互模式中浏览上一条语句的快捷键是__________。(Alt+P) 8、 在Python中__________表示空类型。(None)

9、 列表、元组、字符串是Python的_________(有序?无序)序列。(有序) 10、 11、 12、

查看变量类型的Python内置函数是________________。(type()) 查看变量内存地址的Python内置函数是_________________。(id())

以3为实部4为虚部,Python复数的表达形式为___________或________。(3+4j、

3+4J) 13、 14、 15、

Python运算符中用来计算整商的是_________。(//) Python运算符中用来计算集合并集的是_______。(|)

使用运算符测试集合包含集合A是否为集合B的真子集的表达式可以写作

_______。(A..

______________命令既可以删除列表中的一个元素,也可以删除整个列表。(del)

.

17、 18、 19、 20、 21、 22、 23、 24、

表达式 int('123', 16) 的值为_________。(291) 表达式 int('123', 8) 的值为_________。(83) 表达式 int('123') 的值为_____________。(123) 表达式 int('101',2) 的值为__________。(5) 表达式 abs(-3) 的值为___________。(3)

Python 3.x语句 print(1, 2, 3, sep=':') 的输出结果为____________。(1:2:3) 表达式 int(4**0.5) 的值为____________。(2)

Python内置函数_________可以返回列表、元组、字典、集合、字符串以及range

对象中元素个数。(len()) 25、 26、 27、 28、

Python内置函数____________用来返回序列中的最大元素。(max()) Python内置函数____________用来返回序列中的最小元素。(min())

Python内置函数________________用来返回数值型序列中所有元素之和。(sum()) 为了提高Python代码运行速度和进行适当的保密,可以将Python程序文件编译为

扩展名__________的文件。(pyc) 29、 30、 31、 32、 33、 34、 35、 36、 37、

..

已知 x = 3,那么执行语句 x += 6 之后,x的值为_______________。(9) 表达式 3 | 5 的值为__________。(7) 表达式 3 & 6 的值为_________。(2) 表达式 3 ** 2 的值为_________。(9) 表达式 3 * 2的值为___________。(6) 表达式 3<<2 的值为_______________。(12) 表达式 65 >> 1 的值为_____________。(32) 表达式 chr(ord('a')^32) 的值为___________。('A') 表达式 chr(ord('a')-32) 的值为___________。('A')

.

38、 39、 40、

表达式 abs(3+4j) 的值为____________。(5.0) 表达式 callable(int) 的值为___________。(True)

假设有Python程序文件abc.py,其中只有一条语句print(__name__),那么直接运

行该程序时得到的结果为_____________。(__main__) 41、 42、 43、

第二章 Python序列 44、 45、 46、 47、

表达式[1, 2, 3]*3的执行结果为______________________。([1, 2, 3, 1, 2, 3, 1, 2, 3]) list(map(str, [1, 2, 3]))的执行结果为_____________________。([‘1’, ‘2’, ‘3’]) 语句x = 3==3, 5执行结束后,变量x的值为_____________。((True, 5)) 已知 x = 3,并且id(x)的返回值为 496103280,那么执行语句 x += 6 之后,表达表达式16**0.5的值为____________________。(4.0) 表达式type({3})的值为____________________。(set)

表达式isinstance('Hello world', str)的值为____________________。(True)

式 id(x) == 496103280 的值为___________。(False) 48、 49、 50、

已知 x = 3,那么执行语句 x *= 6 之后,x的值为________________。(18) 表达式[3] in [1, 2, 3, 4]的值为________________。(False)

列表对象的sort()方法用来对列表元素进行原地排序,该函数返回值为 。

(None) 51、

假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到的

值是______________________。([6, 7, 9, 11]) 52、

使用列表推导式生成包含10个数字5的列表,语句可以写为_______________。([5

for i in range(10)]) 53、

假设有列表a = ['name', 'age', 'sex']和b = ['Dong', 38, 'Male'],请使用一个语句将这两

个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,

..

.

这个语句可以写为_____________________。(c = dict(zip(a, b))) 54、 55、 56、 57、

任意长度的Python列表、元组和字符串中最后一个元素的下标为________。(-1) Python语句list(range(1,10,3))执行结果为___________________。([1, 4, 7]) 表达式 list(range(5)) 的值为________________。([0, 1, 2, 3, 4])

已知a = [1, 2, 3]和b = [1, 2, 4],那么id(a[1])==id(b[1])的执行结果为___________。

(True) 58、 59、

切片操作list(range(6))[::2]执行结果为________________。([0, 2, 4])

使用切片操作在列表对象x的开始处增加一个元素3的代码为_________。(x[0:0]

= [3]) 60、

语句sorted([1, 2, 3], reverse=True) == reversed([1, 2, 3])执行结果为_________。

(False) 61、

表达式 sorted([111, 2, 33], key=lambda x: len(str(x))) 的值为________________。([2,

33, 111]) 62、

表达式 sorted([111, 2, 33], key=lambda x: -len(str(x))) 的值为____________。([111,

33, 2]) 63、 64、 65、 66、

语句 x = (3,) 执行后x的值为_______________。((3,)) 语句 x = (3) 执行后x的值为________________。(3) 已知x=3和y=5,执行语句 x, y = y, x 后x的值是____。(5)

可以使用内置函数_______________查看包含当前作用域内所有全局变量和值的字

典。(globals()) 67、

可以使用内置函数___________________查看包含当前作用域内所有局部变量和值

的字典。(locals()() 68、

字典中多个元素之间使用____________分隔开,每个元素的“键”与“值”之间使

用________分隔开。(逗号、冒号)

..

.

69、 字典对象的___________方法可以获取指定“键”对应的“值”,并且可以在指定

“键”不存在的时候返回指定值,如果不指定则返回None。(get()) 70、 71、 72、 73、

字典对象的_____________方法返回字典中的“键-值对”列表。(items()) 字典对象的____________方法返回字典的“键”列表。(keys()) 字典对象的______________方法返回字典的“值”列表。(values())

已知 x = {1:2},那么执行语句 x[2] = 3之后,x的值为________________。({1: 2,

2: 3}) 74、 75、 76、

表达式 {1, 2, 3, 4} - {3, 4, 5, 6}的值为__________________。({1, 2}) 表达式set([1, 1, 2, 3])的值为____________________。({1, 2, 3})

使用列表推导式得到100以内所有能被13整除的数的代码可以写作

___________________________________。([i for i in range(100) if i%13==0]) 77、 78、

已知 x = [3, 5, 7],那么表达式 x[10:]的值为____________。([])

已知 x = [3, 5, 7],那么执行语句 x[len(x):] = [1, 2]之后,x的值为______________。

([3, 5, 7, 1, 2]) 79、

已知 x = [3, 7, 5],那么执行语句 x.sort(reverse=True)之后,x的值为

_________________。([7, 5, 3]) 80、

已知 x = [3, 7, 5],那么执行语句 x = x.sort(reverse=True)之后,x的值为_________。

(None) 81、

已知 x = [1, 11, 111],那么执行语句 x.sort(key=lambda x: len(str(x)), reverse=True)

之后,x的值为__________________。([111, 11, 1]) 82、 83、

2]) 84、

表达式 list(map(list,zip(*[[1, 2, 3], [4, 5, 6]]))) 的值为________________。([[1, 4], [2, 表达式 list(zip([1,2], [3,4])) 的值为________________________。([(1, 3), (2, 4)]) 已知 x = [1, 2, 3, 2, 3],执行语句 x.pop() 之后,x的值为_____________。([1, 2, 3,

5], [3, 6]])

..

.

85、 86、

表达式 [x for x in [1,2,3,4,5] if x<3] 的值为_____________________。([1, 2]) 表达式 [index for index, value in enumerate([3,5,7,3,7]) if value == max([3,5,7,3,7])]

的值为__________________。([2, 4]) 87、

已知 x = [3,5,3,7],那么表达式 [x.index(i) for i in x if i==3] 的值为

______________。([0, 0]) 88、

已知列表 x = [1, 2],那么表达式 list(enumerate(x)) 的值为_______________。([(0,

1), (1, 2)]) 89、

已知 vec = [[1,2], [3,4]],则表达式 [col for row in vec for col in row] 的值为

__________________________。([1, 2, 3, 4]) 90、

已知 vec = [[1,2], [3,4]],则表达式 [[row[i] for row in vec] for i in range(len(vec[0]))]

的值为_________________________。([[1, 3], [2, 4]]) 91、 92、

2]) 93、 94、

已知 x = [3, 5, 7],那么执行语句 x[:3] = [2]之后,x的值为________________(。[ 2]) 已知x为非空列表,那么执行语句y = x[:]之后,id(x[0]) == id(y[0])的值为已知 x = list(range(10)),则表达式 x[-4:] 的值为__________。([6, 7, 8, 9]) 已知 x = [3, 5, 7],那么执行语句 x[1:] = [2]之后,x的值为________________。([3,

__________。(True) 95、

已知 x = [1, 2, 3, 2, 3],执行语句 x.remove(2) 之后,x的值为____________。([1,

3, 2, 3]) 96、 97、 98、 99、 100、

表达式 len([i for i in range(10)]) 的值为__________。(10) 表达式 len(range(1,10)) 的值为_____________。(9) 表达式 range(10)[-1] 的值为____________。(9) 表达式 range(10,20)[4] 的值为__________。(14) 表达式 round(3.4) 的值为___________。(3)

..

.

101、 102、 103、 104、

表达式 round(3.7) 的值为_________。(4)

已知 x = (3), 那么表达式 x * 3 的值为__________。(9) 已知 x = (3,),那么表达式 x * 3 的值为_____________。((3, 3, 3))

假设列表对象x = [1, 1, 1],那么表达式id(x[0]) == id(x[2])的值为_____________。

(True) 105、

已知列表 x = list(range(10)),那么执行语句 del x[::2]之后,x的值为_________。

([1, 3, 5, 7, 9]) 106、

已知列表 x = [1, 2, 3, 4],那么执行语句 del x[1] 之后x的值为____________。([1,

3, 4]) 107、 108、 109、

表达式 [1] * 2 的值为_________________。([1, 1]) 表达式 [1, 2] * 2 的值为______________。([1, 2, 1, 2])

已知列表 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、 112、

已知列表 x = [1, 2, 3],那么执行语句 x.pop(0) 之后,x的值为_________。([2, 3]) 已知 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}) 115、

已知 x = [1, 2, 3],那么执行语句 x[len(x)-1:] = [4, 5, 6]之后,变量x的值为

_________________________________。([1, 2, 4, 5, 6]) 116、

..

表达式 len(range(1, 10)) 的值为___________。(9)

.

117、 已知x是一个列表对象,那么执行语句 y = x[:] 之后表达式 id(x) == id(y) 的值为

___________。(False) 118、

表达式 sorted([13, 1, 237, 89, 100], key=lambda x: len(str(x))) 的值为

___________________________________。([1, 13, 89, 237, 100]) 119、 120、 121、 122、 123、 124、 125、 126、 127、 128、 129、

已知 x = {1:2, 2:3},那么表达式 x.get(3, 4) 的值为____。(4) 已知 x = {1:2, 2:3},那么表达式 x.get(2, 4) 的值为______。(3)

表达式 {1, 2, 3} | {3, 4, 5} 的值为_____________________。({1, 2, 3, 4, 5}) 表达式 {1, 2, 3} | {2, 3, 4} 的值为______________________。({1, 2, 3, 4}) 表达式 {1, 2, 3} & {3, 4, 5} 的值为______________。({3}) 表达式 {1, 2, 3} & {2, 3, 4} 的值为___________。({2, 3}) 表达式 {1, 2, 3} - {3, 4, 5} 的值为_________。({1, 2}) 表达式 {1, 2, 3} < {3, 4, 5} 的值为_________。(False) 表达式 {1, 2, 3} < {1, 2, 4} 的值为___________。(False) 表达式 [1,2,3].count(4) 的值为_______________。(0)

Python标准库random中的___________方法作用是从序列中随机选择1个元素。

(choice()) 130、

Python标准库random中的sample(seq, k)方法作用是从序列中选择________(重

复?不重复?)的k个元素。(不重复) 131、 132、 133、 134、

random模块中_____________方法的作用是将列表中的元素随机乱序。(shuffle()) 执行代码 x, y, z = sorted([1, 3, 2]) 之后,变量y的值为______。(2) 表达式 (1, 2, 3)+(4, 5) 的值为__________________。((1, 2, 3, 4, 5))

表达式 dict(zip([1, 2], [3, 4])) 的值为_________________________________。({1:

3, 2: 4}) 135、

..

语句 x, y, z = [1, 2, 3] 执行后,变量y的值为__________。(2)

.

136、 已知 x = [[1,3,3], [2,3,1]],那么表达式 sorted(x, key=lambda item:item[0]+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]))

的值为____________________________________。([[2, 3, 1], [1, 3, 3]]) 138、

已知 x = [[1,3,3], [2,3,1]],那么表达式 sorted(x, key=lambda item:(item[1], -item[2]))

的值为____________________________________。([[1, 3, 3], [2, 3, 1]]) 139、 140、 141、 142、

已知 x = {1, 2, 3},那么执行语句 x.add(3) 之后,x的值为__________。({1, 2, 3}) 已知 x = {1:1},那么执行语句 x[2] = 2之后,len(x)的值为____________。(2) 已知 x = {1:1, 2:2},那么执行语句 x[2] = 4之后,len(x)的值为____________。(2) 假设已从标准库functools导入reduce()函数,那么表达式 reduce(lambda x, y: x-y, [1,

2, 3]) 的值为____。(-4) 143、

假设已从标准库functools导入reduce()函数,那么表达式 reduce(lambda x, y: x+y, [1,

2, 3]) 的值为____。(6) 144、

假设已从标准库functools导入reduce()函数,那么表达式reduce(lambda x,y:max(x,y),

[1,2,3,4,4,5])的值为_________。(5) 145、

已知有函数定义 def demo(*p):return sum(p),那么表达式 demo(1, 2, 3) 的值为

______、表达式 demo(1, 2, 3, 4) 的值为_________。(6、10) 146、

已知列表 x = [1, 2],那么连续执行命令 y = x和 y.append(3) 之后,x的值为

________。([1, 2, 3]) 147、

已知列表 x = [1, 2],那么连续执行命令 y = x[:] 和 y.append(3) 之后,x的值为

________。([1, 2]) 148、

已知列表 x = [1, 2],执行语句 y = x[:] 后,表达式 id(x) == id(y) 的值为_______。

(False) 149、

已知列表 x = [1, 2],执行语句 y = x 后,表达式 id(x) == id(y) 的值为_______。

(True)

..

.

150、 151、

已知列表 x = [1, 2],执行语句 y = x 后,表达式 x is y 的值为_______。(True) 已知列表 x = [1, 2],执行语句 y = x[:] 后,表达式 x is not y 的值为_______。

(True) 152、

表达式 sorted(random.sample(range(5), 5)) 的值为_________________________。

([0, 1, 2, 3, 4]) 153、 154、

表达式 [i for i in range(10) if i>8] 的值为________________。([9])

已知有列表 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]]) 155、 156、

执行语句 x,y,z = map(str, range(3)) 之后,变量y的值为___________。('1') 已知列表 x = [1, 2],那么执行语句 x.extend([3]) 之后, x的值为____________。

([1, 2, 3]) 157、

已知列表 x = [1, 2],那么执行语句 x.append([3]) 之后,x的值为_____________。

([1, 2, [3]]) 158、 159、 160、

表达式 print(0b10101) 的值为____________。(21)

已知 x = [1, 2, 3, 4, 5],那么执行语句 del x[:3] 之后,x的值为__________。([4, 5]) 已知 x = range(1,4) 和 y = range(4,7),那么表达式 sum([i*j for i,j in zip(x,y)]) 的值

为__________。(32) 161、 162、 163、 164、 165、 166、

表达式 [5 for i in range(3)] 的值为_______________。([5, 5, 5]) 表达式 {1, 2, 3} == {1, 3, 2} 的值为___________。(True) 表达式 [1, 2, 3] == [1, 3, 2] 的值为____________。(False)

已知 x = [1, 2, 1],那么表达式 id(x[0]) == id(x[2]) 的值为_______________。(True) 表达式 3 not in [1, 2, 3]的值为__________。(False)

已知 x = [1, 2],那么执行语句 x[0:0] = [3, 3]之后,x的值为___________。([3, 3,

1, 2])

..

.

167、

2]) 168、

已知 x = [1, 2],那么执行语句 x[0:1] = [3, 3]之后,x的值为___________。([3, 3,

已知 x = [1, 2, 3, 4, 5],那么执行语句 del x[1:3] 之后,x的值为____________。([1,

4, 5]) 169、

已知 x = [[1, 2, 3,], [4, 5, 6]],那么表达式 sum([i*j for i,j in zip(*x)]) 的值为______。

(32) 170、

已知列表 x = [1, 2, 3] 和 y = [4, 5, 6],那么表达式 [(i,j) for i, j in zip(x,y) if i==3]

的值为____________。([(3, 6)]) 171、 172、 173、 174、

已知列表 x = [1.0, 2.0, 3.0],那么表达式 sum(x)/len(x) 的值为___________。(2.0) 已知 x = {1:2, 2:3, 3:4},那么表达式 sum(x) 的值为___________。(6) 已知 x = {1:2, 2:3, 3:4},那么表达式 sum(x.values()) 的值为_________。(9) 已知 x = [3, 2, 3, 3, 4],那么表达式 [index for index, value in enumerate(x) if

value==3] 的值为____________。([0, 2, 3]) 175、 176、 177、 178、 179、 180、 181、

表达式 1234%1000//100 的值为___________。(2) 表达式 3 // 5 的值为_______________。(0)

表达式 [1, 2] + [3] 的值为__________________。([1, 2, 3]) 表达式 (1,) + (2,) 的值为_____________。((1, 2)) 表达式 (1) + (2) 的值为____________。(3)

已知 x, y = map(int, ['1', '2']),那么表达式 x + y 的值为_______。(3)

已知列表 x = list(range(5)),那么执行语句 x.remove(3) 之后,表达式 x.index(4) 的

值为________。(3) 182、

已知列表 x = [1, 3, 2],那么执行语句 x.reverse() 之后,x的值为____________。

([2, 3, 1]) 183、

已知列表 x = [1, 3, 2],那么执行语句 x = x.reverse() 之后,x的值为____________。

..

.

(None) 184、

已知x为非空列表,那么表达式 x.reverse() == list(reversed(x)) 的值为__________。

(False) 185、 186、

已知x为非空列表,那么表达式 x.sort() == sorted(x) 的值为__________。(False) 已知列表 x = [1, 3, 2],那么执行语句 y = list(reversed(x)) 之后,x的值为

__________。([1, 3, 2]) 187、

已知列表 x = [1, 3, 2],那么执行语句 y = list(reversed(x)) 之后,y的值为

__________。([2, 3, 1]) 188、

已知列表x中包含超过5个以上的元素,那么表达式 x == x[:5]+x[5:] 的值为

________。(True) 189、 190、

已知字典 x = {i:str(i+3) for i in range(3)},那么表达式 sum(x) 的值为______。(3) 已知字典 x = {i:str(i+3) for i in range(3)},那么表达式 sum(item[0] for item in

x.items()) 的值为___________。(3) 191、

已知字典 x = {i:str(i+3) for i in range(3)},那么表达式 ''.join([item[1] for item in

x.items()]) 的值为_____________。('345') 192、

已知列表 x = [1, 3, 2],那么表达式 [value for index, value in enumerate(x) if

index==2] 的值为_______________。([2]) 193、 194、

已知列表 x = [1, 3, 2],那么执行语句 a, b, c = sorted(x) 之后,b的值为____。(2) 已知列表 x = [1, 3, 2],那么执行语句 a, b, c = map(str,sorted(x)) 之后,c的值为

______。('3') 195、 196、 197、 198、

表达式 set([1,2,3]) == {1, 2, 3} 的值为____________。(True) 表达式 set([1,2, 2,3]) == {1, 2, 3} 的值为____________。(True) 表达式 '%c'%65 == str(65) 的值为___________。(False) 表达式 '%s'%65 == str(65) 的值为_____________。(True)

..

.

199、 200、 201、 202、 203、

表达式 chr(ord('b')^32) 的值为_________。('B') 表达式 'abc' in 'abdcefg' 的值为_____________。(False)

已知x为整数变量,那么表达式 int(hex(x), 16) == x 的值为_____________。(True) 已知 x, y = 3, 5,那么执行x, y = y, x 之后,x的值为__________。(5) 已知 x = 'abcd' 和 y = 'abcde',那么表达式 [i==j for i,j in zip(x,y)] 的值为

________________。([True, True, True, True]) 204、 205、 206、 207、 208、 209、 210、 211、 212、 213、 214、 215、 216、 217、 218、 219、 220、

..

已知x = list(range(20)),那么表达式x[-1]的值为____________________。(19) 已知x = 3+4j和y = 5+6j,那么表达式x+y的值为____________________。(8+10j) 已知x = [3],那么执行x += [5]之后x的值为____________________。([3, 5]) 已知x = [3, 3, 4],那么表达式id(x[0])==id(x[1])的值为__________________。(True) 表达式int('11', 2)的值为______________________。(3) 表达式int('11', 8)的值为_______________________。(9)

表达式int(bin(54321), 2)的值为_______________________。(54321) 表达式chr(ord('A')+1)的值为____________________。('B') 表达式int(str(34)) == 34的值为___________________。(True) 表达式list(str([3, 4])) == [3, 4]的值为_________________。(False)

表达式{1, 2, 3, 4, 5, 6} ^ {5, 6, 7, 8}的值为__________________。({1, 2, 3, 4, 7, 8}) 表达式15 // 4的值为__________________。(3)

表达式sorted({'a':3, 'b':9, 'c':78})的值为_________________。(['a', 'b', 'c']) 表达式sorted({'a':3, 'b':9, 'c':78}.values())的值为_____________。([3, 9, 78]) 已知x = [3, 2, 4, 1],那么执行语句x = x.sort()之后,x的值为____________。(None) 表达式list(filter(lambda x: x>5, range(10)))的值为_________________。([6, 7, 8, 9]) 已知x = list(range(20)),那么语句print(x[100:200])的输出结果为_______________。

.

([]) 221、

已知x = list(range(20)),那么执行语句x[:18] = []后列表x的值为______________。

([18, 19]) 222、

已知x = [1, 2, 3],那么连续执行y = x[:]和y.append(4)这两条语句之后,x的值为

____________________。([1, 2, 3]) 223、

已知x = [1, 2, 3],那么连续执行y = x和y.append(4)这两条语句之后,x的值为

____________________。([1, 2, 3, 4]) 224、

已知x = [1, 2, 3],那么连续执行y = [1, 2, 3]和y.append(4)这两条语句之后,x的值

为____________________。([1, 2, 3]) 225、

已知x = [[]] * 3,那么执行语句x[0].append(1)之后,x的值为

____________________。([[1], [1], [1]]) 226、

已知x = [[] for i in range(3)],那么执行语句x[0].append(1)之后,x的值为

_________________。([[1], [], []]) 227、

已知x = ([1], [2]),那么执行语句x[0].append(3)后x的值为________________。(([1,

3], [2])) 228、

已知x = {1:1, 2:2},那么执行语句x.update({2:3, 3:3})之后,表达式sorted(x.items())

的值为____________________。([(1, 1), (2, 3), (3, 3)]) 229、

已知x = {1:1, 2:2},那么执行语句x[3] = 3之后,表达式sorted(x.items())的值为

____________________。([(1, 1), (2, 2), (3, 3)]) 230、

已知x = [1, 2, 3],那么表达式not (set(x*100)-set(x))的值为________________。

(True) 231、

已知x = [1, 2, 3],那么表达式not (set(x*100)&set(x))的值为________________。

(False) 232、 233、

表达式{'x': 1, **{'y': 2}}的值为___________________。({'x': 1, 'y': 2})

表达式{*range(4), 4, *(5, 6, 7)}的值为__________________。({0, 1, 2, 3, 4, 5, 6, 7})

..

.

234、 已知 x = [1,2,3,4,5],那么执行语句 x[::2] = range(3) 之后,x的值为

_______________。([0, 2, 1, 4, 2]) 235、

已知 x = [1,2,3,4,5],那么执行语句 x[::2] = map(lambda y:y!=5,range(3)) 之后,x

的值为________________。([True, 2, True, 4, True]) 236、

已知 x = [1,2,3,4,5],那么执行语句 x[1::2] = sorted(x[1::2], reverse=True) 之后,x

的值为_________________。([1, 4, 3, 2, 5]) 237、 238、

第3章 选择结构与循环结构 239、 240、 241、 242、 243、 244、 245、 246、 247、 248、 249、 250、 251、

表达式 'ab' in 'acbed' 的值为________。(False)

假设n为整数,那么表达式 n&1 == n%2 的值为_____________。(True) 关键字__________用于测试一个对象是否是一个可迭代对象的元素。(in) 表达式 3<5>2 的值为_______________。(True)

已知 x = {'a':'b', 'c':'d'},那么表达式 'a' in x 的值为______________。(True) 已知 x = {'a':'b', 'c':'d'},那么表达式 'b' in x 的值为______________。(False) 已知 x = {'a':'b', 'c':'d'},那么表达式 'b' in x.values() 的值为______________。(True) 表达式 1<2<3 的值为_________。(True) 表达式 3 or 5 的值为________。(3) 表达式 0 or 5 的值为_________。(5) 表达式 3 and 5 的值为____________。(5)

表达式 3 and not 5 的值为______________。(False)

Python中用于表示逻辑与、逻辑或、逻辑非运算的关键字分别是_________、表达式 True*3 的值为__________。(3) 表达式 False+1 的值为__________。(1)

..

.

___________、_________。(and、or、not) 252、

Python 3.x

语句 for i in range(3):print(i, end=',') 的输出结果为

_____________________。(0,1,2,) 253、 254、

Python 3.x语句 print(1, 2, 3, sep=',') 的输出结果为________________。(1,2,3) 对于带有else子句的for循环和while循环,当循环因循环条件不成立而自然结束

时________(会?不会?)执行else中的代码。(会) 255、 256、 257、 258、 259、 260、 261、

第4章 字符串与正则表达式 262、 263、 264、 265、

表达式 'abc' in ('abcdefg') 的值为______________。(True) 表达式 'abc' in ['abcdefg'] 的值为______________。(False) 表达式 '\\x41' == 'A' 的值为_____________。(True)

Python语句''.join(list('hello world!'))执行的结果是____________________。('hello 在循环语句中,__________语句的作用是提前结束本层循环。(break) 在循环语句中,_______语句的作用是提前进入下一次循环。(continue) 表达式 5 if 5>6 else (6 if 3>2 else 5) 的值为_________。(6)

Python关键字elif表示__________和___________两个单词的缩写。(else、if) 表达式 3 in {1, 2, 3} 的值为_________。(True) 表达式 'ac' in 'abce' 的值为_____________。(False) 表达式 not 3 的值为________________。(False)

world!') 266、 267、 268、

转义字符r’\\n’的含义是___________________。(回车换行)

已知列表对象x = ['11', '2', '3'],则表达式 max(x) 的值为___________。('3') 表达式 min(['11', '2', '3']) 的值为_________________。('11')

..

.

269、 270、

已知列表对象x = ['11', '2', '3'],则表达式max(x, key=len) 的值为___________。('11') 已知 path = r'c:\est.html',那么表达式 path[:-4]+'htm' 的值为__________。

('c:\\\est.htm') 271、 272、 273、 274、 275、 276、 277、 278、 279、

表达式 list(str([1,2,3])) == [1,2,3] 的值为______________。(False) 表达式 str([1, 2, 3]) 的值为__________________。('[1, 2, 3]') 表达式 str((1, 2, 3)) 的值为__________________。('(1, 2, 3)') 表达式 sum(range(1, 10, 2)) 的值为____________。(25) 表达式 sum(range(1, 10)) 的值为_____________。(45) 表达式 '%c'%65 的值为_________。('A') 表达式 '%s'%65 的值为__________。('65')

表达式 '%d,%c' % (65, 65) 的值为________。('65,A')

表达式 'The first:{1}, the second is {0}'.format(65,97) 的值为

______________________________。('The first:97, the second is 65') 280、 281、 282、 283、 284、 285、 286、 287、 288、 289、

..

表达式 '{0:#d},{0:#x},{0:#o}'.format(65) 的值为_____________。('65,0x41,0o101') 表达式 isinstance('abcdefg', str) 的值为____________。(True) 表达式 isinstance('abcdefg', object) 的值为_____________。(True) 表达式 isinstance(3, object) 的值为_____________。(True) 表达式 'abcabcabc'.rindex('abc') 的值为____________。(6)

表达式 ':'.join('abcdefg'.split('cd')) 的值为______________。('ab:efg') 表达式 'Hello world. I like Python.'.rfind('python') 的值为________。(-1) 表达式 'abcabcabc'.count('abc') 的值为_____________。(3)

表达式 'apple.peach,banana,pear'.find('p') 的值为______________。(1) 表达式 'apple.peach,banana,pear'.find('ppp') 的值为________。(-1)

.

290、 291、 292、

表达式 'abcdefg'.split('d') 的值为__________________。(['abc', 'efg']) 表达式 ':'.join('1,2,3,4,5'.split(',')) 的值为__________________。('1:2:3:4:5') 表达式 ','.join('a b ccc\\n\\n\\nddd '.split()) 的值为______________。

('a,b,ccc,ddd') 293、 294、 295、 296、 297、 298、 299、 300、 301、 302、 303、 304、 305、

表达式 'Hello world'.upper() 的值为___________。('HELLO WORLD') 表达式 'Hello world'.lower() 的值为_____________。('hello world')

表达式 'Hello world'.lower().upper() 的值为___________。('HELLO WORLD') 表达式 'Hello world'.swapcase().swapcase() 的值为______________。('Hello world') 表达式 r'c:\\windows\\notepad.exe'.endswith('.exe') 的值为_____________。(True) 表达式 r'c:\\windows\\notepad.exe'.endswith(('.jpg', '.exe')) 的值为_______。(True) 表达式 'C:\\\\Windows\\\\notepad.exe'.startswith('C:') 的值为_________。(True) 表达式 len('Hello world!'.ljust(20)) 的值为_________。(20) 表达式 len('abcdefg'.ljust(3)) 的值为_________。(7) 表达式 'a' + 'b' 的值为_____________。('ab')

已知 x = '123' 和 y = '456',那么表达式 x + y 的值为______________。('123456') 表达式 'a'.join('abc'.partition('a')) 的值为________________。('aaabc')

表达式 re.split('\\.+', 'alpha.beta...gamma..delta') 的值为_______________________。

(['alpha', 'beta', 'gamma', 'delta']) 306、

已知 x = 'a234b123c',并且re模块已导入,则表达式 re.split('\\d+', x) 的值为

_________________。(['a', 'b', 'c']) 307、 308、 309、

表达式 ''.join('asdssfff'.split('sd')) 的值为____________。('assfff') 表达式 ''.join(re.split('[sd]','asdssfff')) 的值为_______________。('afff')

假设re模块已导入,那么表达式 re.findall('(\\d)\\\\1+', '33abcd112') 的值为

..

.

___________________。(['3', '1']) 310、 311、 312、 313、 314、 315、 316、

语句 print(re.match('abc', 'defg')) 输出结果为_____________。(None) 表达式 'Hello world!'[-4] 的值为________________。('r') 表达式 'Hello world!'[-4:] 的值为________________。('rld!') 表达式 'test.py'.endswith(('.py', '.pyw')) 的值为__________。(True) 表达式 len('abc'.ljust(20)) 的值为______________。(20)

代码 print(re.match('^[a-zA-Z]+$','abcDEFG000')) 的输出结果为_________。(None) 当在字符串前加上小写字母_____或大写字母_____表示原始字符串,不对其中的任

何字符进行转义。(r、R) 317、

在设计正则表达式时,字符_______紧随任何其他限定符(*、+、?、{n}、{n,}、{n,m})

之后时,匹配模式是“非贪心的”,匹配搜索到的、尽可能短的字符串。(?) 318、

假设正则表达式模块re已导入,那么表达式 re.sub('\\d+', '1', 'a12345bbbb67c890d0e')

的值为_____________________。('a1bbbb1c1d1e') 319、 320、 321、 322、 323、

表达式 len('中国'.encode('utf-8')) 的值为___________。(6) 表达式 len('中国'.encode('gbk')) 的值为____________。(4) 表达式 chr(ord('A')+2) 的值为__________。('C')

表达式 'abcab'.replace('a','yy') 的值为___________。('yybcyyb')

已知 table = ''.maketrans('abcw', 'xyzc'),那么表达式 'Hellow world'.translate(table)

的值为______________________。('Helloc corld') 324、

表达式 'hello world, hellow every one'.replace('hello', 'hi') 的值为

________________________。('hi world, hiw every one') 325、

已知字符串 x = 'hello world',那么执行语句 x.replace('hello', 'hi') 之后,x的值为

____________。('hello world') 326、

..

正则表达式元字符________用来表示该符号前面的字符或子模式1次或多次出现。

.

(+) 327、

已知 x = 'a b c d',那么表达式 ','.join(x.split()) 的值为___________。

('a,b,c,d') 328、

正则表达式元字符________用来表示该符号前面的字符或子模式0次或多次出现。

(*) 329、 330、 331、 332、 333、 334、 335、 336、 337、 338、 339、 340、 341、 342、 343、 344、 345、 346、

..

表达式 'abcab'.strip('ab') 的值为__________。('c')

表达式 [str(i) for i in range(3)] 的值为____________。(['0', '1', '2']) 表达式 'abc.txt'.endswith(('.txt', '.doc', '.jpg')) 的值为___________。(True) 代码 print(1,2,3,sep=':') 的执行结果为__________________。(1:2:3)

代码 for i in range(3):print(i, end=',') 的执行结果为_________________。(0,1,2,) 表达式 eval('''__import__('math').sqrt(9)''') 的值为______________。(3.0) 表达式 eval('''__import__('math').sqrt(3**2+4**2)''') 的值为_________。(5.0) 表达式 eval('3+5') 的值为_________________。(8)

表达式 eval('[1, 2, 3]') 的值为__________________。([1, 2, 3])

假设math标准库已导入,那么表达式 eval('math.sqrt(4)') 的值为_________。(2.0) 已知x为非空列表,那么表达式 random.choice(x) in x 的值为___________。(True) 表达式 'abc10'.isalnum() 的值为______________。(True) 表达式 'abc10'.isalpha() 的值为________________。(False) 表达式 'abc10'.isdigit() 的值为__________________。(False)

表达式 'C:\\\\windows\\\\notepad.exe'.endswith('.exe') 的值为________。(True) 表达式 '%s'%[1,2,3] 的值为_____________。('[1, 2, 3]') 表达式 'aaasdf'.lstrip('as') 的值为________________。('df') 表达式 'aaasdf'.lstrip('af') 的值为________________。('sdf')

.

347、 348、 349、 350、 351、

表达式 'aaasdf'.strip('af') 的值为______________。('sd') 表达式 'aaasdf'.rstrip('af') 的值为_______________。('aaasd') 表达式 len('SDIBT') 的值为__________。(5)

表达式 'Hello world!'.count('l') 的值为___________。(3)

已知 x = 'abcdefg',则表达式 x[3:] + x[:3] 的值为___________________。

('defgabc') 352、 353、 354、

字符串编码格式UTF8使用____________________个字节表示一个汉字。(3) 字符串编码格式GBK使用__________________个字节表示一个汉字。(2) 已知字符串编码格式utf8使用3个字节表示一个汉字、1个字节表示英语字母,那

么表达式len('abc你好')的值为_______________。(5) 355、

已知字符串编码格式utf8使用3个字节表示一个汉字、1个字节表示英语字母,那

么表达式len('abc你好'.encode())的值为_______________。(9) 356、

已知字符串编码格式gbk使用2个字节表示一个汉字、1个字节表示英语字母,那

么表达式len('abc你好'.encode('gbk'))的值为_______________。(7) 357、

已知ord('A')的值为65并且hex(65)的值为'0x41',那么表达式'\\x41b'的值为

________________。('Ab') 358、

已知formatter = 'good {0}'.format,那么表达式list(map(formatter, ['morning']))的值

为__________________。(['good morning']) 359、

已知x = 'hello world.',那么表达式x.find('x')和x.rfind('x')的值都为_____________。

(-1) 360、 361、 362、

表达式':'.join('hello world.'.split())的值为___________________。('hello:world.') 表达式':'.join('a b c d'.split(maxsplit=2))的值为_________________。('a:b:c d') 已知x = 'hello world',那么表达式x.replace('l', 'g')的值为_______________。('heggo

worgd')

..

.

363、 假设已成功导入Python标准库string,那么表达式len(string.digits)的值为

_______________。(10) 364、 365、 366、 367、 368、 369、

表达式'aaaassddf'.strip('af')的值为__________________。('ssdd') 表达式len('aaaassddf'.strip('afds'))的值为________________。(0) 表达式len('hello world'[100:])的值为__________________。(0) 表达式chr(ord('a')^32^32)的值为_________________。('a') 表达式chr(ord('a')^32)的值为_________________。('A')

已知x = 'aa b ccc dddd',那么表达式''.join([v for i,v in enumerate(x[:-1]) if v==x[i+1]])

的值为_________________。('accddd') 370、

假设正则表达式模块re已正确导入,那么表达式''.join(re.findall('\\d+', 'abcd1234'))

的值为_____________________。('1234') 371、

假设正则表达式模块re已正确导入,那么表达式re.findall('\\d+?', 'abcd1234')的值为

_____________________。(['1', '2', '3', '4']) 372、

假设正则表达式模块re已正确导入,那么表达式re.sub('(.\\s)\\\\1+', '\\\\1','a a a a a bb')

的值为________________________。('a bb') 373、 374、 375、

表达式 eval('*'.join(map(str, range(1, 6)))) 的值为_________。(120)

正则表达式模块re的__________方法用来编译正则表达式对象。(compile()) 正则表达式模块re的______________方法用来在字符串开始处进行指定模式的匹

配。(match()) 376、

正则表达式模块re的______________方法用来在整个字符串中进行指定模式的匹

配。(search()) 377、

表达式 re.search(r'\\w*?(?P\\b\\w+\\b)\\s+(?P=f)\\w*?', 'Beautiful is is better than

ugly.').group(0) 的值为___________。('is is') 378、

表达式 'Beautiful is better than ugly.'.startswith('Be', 5) 的值为_________。(False)

..

.

379、 已知字典 x = {i:str(i+3) for i in range(3)},那么表达式 ''.join(x.values()) 的值为

____________。('345')

第5章 函数定义与使用 380、 381、 382、

Python中定义函数的关键字是_________________。(def)

在函数内部可以通过关键字________________来定义全局变量。(global) 如果函数中没有return语句或者return语句不带任何返回值,那么该函数的返回值

为_________________。(None) 383、 384、 385、 386、 387、 388、

表达式 sum(range(10)) 的值为________________。(45) 表达式 sum(range(1, 10, 2)) 的值为____________。(25)

表达式 list(filter(None, [0,1,2,3,0,0])) 的值为___________________。([1, 2, 3]) 表达式 list(filter(lambda x:x>2, [0,1,2,3,0,0])) 的值为_________。([3])

表达式 list(range(50, 60, 3)) 的值为_______________________。([50, 53, 56, 59]) 表

list(filter(lambda

x:

x%2==0,

range(10)))

__________________________。([0, 2, 4, 6, 8]) 389、 390、 391、 392、 393、

表达式 list(filter(lambda x: len(x)>3, ['a', 'b', 'abcd'])) 的值为___________。(['abcd']) 已知 g = lambda x, y=3, z=5: x*y*z,则语句 print(g(1)) 的输出结果为_______。(15) 表达式 list(map(lambda x: len(x), ['a', 'bb', 'ccc'])) 的值为__________。([1, 2, 3]) 已知 f = lambda x: x+5,那么表达式 f(3) 的值为________。(8)

表达式 sorted(['abc', 'acd', 'ade'], key=lambda x:(x[0],x[2])) 的值为_____________。

(['abc', 'acd', 'ade']) 394、

已知函数定义def demo(x, y, op):return eval(str(x)+op+str(y)),那么表达式demo(3, 5,

'+')的值为______________________。(8) 395、

..

已知函数定义def demo(x, y, op):return eval(str(x)+op+str(y)),那么表达式demo(3, 5,

.

'*')的值为______________________。(15) 396、

已知函数定义def demo(x, y, op):return eval(str(x)+op+str(y)),那么表达式demo(3, 5,

'-')的值为______________________。(-2) 397、

已知f = lambda n: len(bin(n)[bin(n).rfind('1')+1:]),那么表达式f(6)的值为

____________________。(1) 398、

已知f = lambda n: len(bin(n)[bin(n).rfind('1')+1:]),那么表达式f(7)的值为

____________________。(0) 399、 400、

已知 g = lambda x, y=3, z=5: x+y+z,那么表达式 g(2) 的值为________。(10) 已知函数定义 def func(*p):return sum(p),那么表达式 func(1,2,3) 的值为______。

(6) 401、

已知函数定义 def func(*p):return sum(p),那么表达式 func(1,2,3, 4) 的值为

______。(10) 402、

已知函数定义 def func(**p):return sum(p.values()),那么表达式 func(x=1, y=2, z=3)

的值为________。(6) 403、

已知函数定义 def func(**p):return ''.join(sorted(p)),那么表达式 func(x=1, y=2,

z=3)的值为__________。('xyz') 404、

第6章 面向对象程序设计 405、 406、 407、 408、 409、

Python使用_________________关键字来定义类。(class) 表达式 isinstance('abc', str) 的值为________________。(True) 表达式 isinstance('abc', int) 的值为_______________。(False)

表达式 isinstance(4j, (int, float, complex)) 的值为_____________。(True) 表达式 isinstance('4', (int, float, complex)) 的值为_____________。(False) 已知 f = lambda x: 5,那么表达式 f(3)的值为_____________。(5)

..

.

410、 411、 412、 413、 414、 415、

表达式 type(3) in (int, float, complex) 的值为____________。(True) 表达式 type(3.0) in (int, float, complex) 的值为____________。(True) 表达式 type(3+4j) in (int, float, complex) 的值为____________。(True) 表达式 type('3') in (int, float, complex) 的值为____________。(False) 表达式 type(3) == int 的值为__________。(True)

在Python定义类时,与运算符“**”对应的特殊方法名为 _____________。

(__pow__()) 416、

在Python中定义类时,与运算符“//”对应的特殊方法名为_______________。

(__floordiv__()) 417、 418、 419、

表达式type({}) == dict的值为_________________。(True) 表达式type({}) == set的值为_______________。(False)

在Python中,不论类的名字是什么,构造方法的名字都是________________。

(__init__) 420、

如果在设计一个类时实现了__contains__ ()方法,那么该类的对象会自动支持

_____________运算符。(in)

第7章 文件操作 421、

对文件进行写入操作之后,_______________方法用来在不关闭文件对象的情况下

将缓冲区内容写入文件。(flush()) 422、 423、

Python内置函数_____________用来打开或创建文件并返回文件对象。(open()) 使用上下文管理关键字______________可以自动管理文件对象,不论何种原因结束

该关键字中的语句块,都能保证文件被正确关闭。(with) 424、

Python标准库os中用来列出指定文件夹中的文件和子文件夹列表的方式是

____________。(listdir())

..

.

425、 Python标准库os.path中用来判断指定文件是否存在的方法是______________。

(exists()) 426、

Python标准库os.path中用来判断指定路径是否为文件的方法是_______________。

(isfile()) 427、

Python标准库os.path中用来判断指定路径是否为文件夹的方法是

______________。(isdir()) 428、

Python标准库os.path中用来分割指定路径中的文件扩展名的方法是__________。

(splitext()) 429、

Python扩展库_____________支持Excel 2007或更高版本文件的读写操作。

(openpyxl) 430、 431、

Python标准库____________中提供了计算MD5摘要的方法md5()。(hashlib) 已知当前文件夹中有纯英文文本文件readme.txt,请填空完成功能把readme.txt文

件中的所有内容复制到dst.txt中,with open('readme.txt') as src, open('dst.txt', ____________) as dst:dst.write(src.read())。('w')

第8章 异常处理结构 432、

第9章 GUI编程

第10章 网络编程 433、

Python标准库__________对Socket进行了二次封装,支持Socket接口的访问,大Python内建异常类的基类是________________。(BaseException)

幅度简化了网络程序的开发。(socket)

..

.

第13章 多线程编程 434、

Python扩展库______________中封装了Windows底层几乎所有API函数。

(pywin32) 435、

线程对象的___________方法用来阻塞当前线程,指定线程运行结束或超时后继续

运行当前线程。(join())

第14章 数据库编程 436、 437、

Python用来访问和操作内置数据库SQLite的标准库是_____________。(sqlite3) 用于删除数据库表test中所有name字段值为’10001’的记录的SQL语句为

______________________________。(delete from test where name=’10001’)

第15章 多媒体编程 438、 439、

Python扩展库________________完美封装了图形库OpenGL的功能。(pyopengl) Python扩展库______________和______________提供了图像处理功能。(PIL、

pillow) 440、

二、判断题 第1章 基础知识

1、 Python是一种跨平台、开源、免费的高级动态编程语言。(对) 2、 Python 3.x完全兼容Python 2.x。(错)

3、 Python 3.x和Python 2.x唯一的区别就是:print在Python 2.x中是输出语句,而在Python

3.x中是输出函数。(错)

4、 在Windows平台上编写的Python程序无法在Unix平台运行。(错) 5、 不可以在同一台计算机上安装多个Python版本。(错)

..

.

6、 已知 x = 3,那么赋值语句 x = 'abcedfg' 是无法正常执行的。(错)

7、 Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型。(错) 8、 Python采用的是基于值得自动内存管理方式。(对) 9、 在任何时刻相同的值在内存中都只保留一份(错) 10、

Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会

改变函数名的含义。(对) 11、 12、 13、 14、 15、 16、 17、 18、 19、 20、

在Python中可以使用if作为变量名。(错) 在Python 3.x中可以使用中文作为变量名。(对)

Python变量名必须以字母或下划线开头,并且区分字母大小写。(对) 加法运算符可以用来连接字符串并生成新字符串。(对) 9999**9999这样的命令在Python中无法运行。(错) 3+4j不是合法的Python表达式。(错) 0o12f是合法的八进制数字。(错)

不管输入什么,Python 3.x中input()函数的返回值总是字符串。(对) pip命令也支持扩展名为.whl的文件直接安装Python扩展库。(对)

只有Python扩展库才需要导入以后才能使用其中的对象,Python标准库不需要导

入即可使用其中的所有对象和方法。(错) 21、 22、 23、 24、 25、 26、

..

在Python中0xad是合法的十六进制数字表示形式。(对) 3+4j 是合法Python数字类型。(对)

在Python中0oa1是合法的八进制数字表示形式。(错) Python使用缩进来体现代码之间的逻辑关系。(对) Python代码的注释只有一种方式,那就是使用#符号。(错) 放在一对三引号之间的任何内容将被认为是注释。(错)

.

27、 尽管可以使用import语句一次导入任意多个标准库或扩展库,但是仍建议每次只

导入一个标准库或扩展库。(对) 28、 29、

为了让代码更加紧凑,编写Python程序时应尽量避免加入空格和空行。(错) 在Python 3.5中运算符+不仅可以实现数值的相加、字符串连接,还可以实现列表、

元组的合并和集合的并集运算。(错) 30、 31、 32、 33、 34、 35、 36、

在Python中可以使用 for 作为变量名。(错)

在Python中可以使用 id 作为变量名,尽管不建议这样做。(对) Python关键字不可以作为变量名。(对) 一个数字5也是合法的Python表达式。(对)

执行语句 from math import sin 之后,可以直接使用 sin() 函数,例如 sin(3)。(对) 不同版本的Python不能安装到同一台计算机上。(错)

一般来说,Python扩展库没有通用于所有版本Python的,安装时应选择与已安装

Python的版本对应的扩展库。(对) 37、 38、 39、

Python变量名区分大小写,所以student和Student不是同一个变量。(对) 在Python 3.x中reduce()是内置函数。(错)

如果只需要math模块中的sin()函数,建议使用from math import sin来导入,而不

要使用import math导入整个模块。(对) 40、

在Python 3.x中,使用内置函数input()接收用户输入时,不论用户输入的什么格式,

一律按字符串进行返回。(对) 41、

安装Python扩展库时只能使用pip工具在线安装,如果安装不成功就没有别的办

法了。(错)

第2章 Python序列 42、

..

Python支持使用字典的“键”作为下标来访问字典中的值。(对)

.

43、 44、 45、 46、

列表可以作为字典的“键”。(错) 元组可以作为字典的“键”。(对) 字典的“键”必须是不可变的。(对)

已知x为非空列表,那么表达式 sorted(x, reverse=True) == list(reversed(x)) 的值一

定是True。(错) 47、 48、 49、 50、 51、 52、 53、 54、 55、 56、 57、 58、 59、

已知x为非空列表,那么x.sort(reverse=True)和x.reverse()的作用是等价的。(错) 生成器推导式比列表推导式具有更高的效率,推荐使用。(对) Python集合中的元素不允许重复。(对) Python集合可以包含相同的元素。(错) Python字典中的“键”不允许重复。(对) Python字典中的“值”不允许重复。(错) Python集合中的元素可以是元组。(对) Python集合中的元素可以是列表。(错) Python字典中的“键”可以是列表。(错) Python字典中的“键”可以是元组。(对)

Python列表中所有元素必须为相同类型的数据。(错) Python列表、元组、字符串都属于有序序列。(对)

已知A和B是两个集合,并且表达式AB的值一

定为True。(错) 60、 61、

列表对象的append()方法属于原地操作,用于在列表尾部追加一个元素。(对) 对于列表而言,在尾部追加元素比在中间位置插入元素速度更快一些,尤其是对于

包含大量元素的列表。(对) 62、

假设有非空列表x,那么x.append(3)、x = x+[3]与x.insert(0,3)在执行时间上基本没

..

.

有太大区别。(错) 63、

使用Python列表的方法insert()为列表插入元素时会改变列表中插入位置之后元素

的索引。(对) 64、 65、

假设x为列表对象,那么x.pop()和x.pop(-1)的作用是一样的。(对)

使用del命令或者列表对象的remove()方法删除列表中元素时会影响列表中部分元

素的索引。(对) 66、 67、

已知列表 x = [1, 2, 3],那么执行语句 x = 3 之后,变量x的地址不变。(错) 使用列表对象的remove()方法可以删除列表中首次出现的指定元素,如果列中不存

在要删除的指定元素则抛出异常。(对) 68、

元组是不可变的,不支持列表对象的inset()、remove()等方法,也不支持del命令

删除其中的元素,但可以使用del命令删除整个元组对象。(对) 69、 70、 71、

Python字典和集合属于无序序列。(对)

无法删除集合中指定位置的元素,只能删除特定值的元素。(对)

元组的访问速度比列表要快一些,如果定义了一系列常量值,并且主要用途仅仅是

对其进行遍历二不需要进行任何修改,建议使用元组而不使用列表。(对) 72、

当以指定“键”为下标给字典对象赋值时,若该“键”存在则表示修改该“键”对

应的“值”,若不存在则表示为字典对象添加一个新的“键-值对”。(对) 73、

假设x是含有5个元素的列表,那么切片操作x[10:]是无法执行的,会抛出异常。

(错) 74、 75、 76、 77、 78、

只能对列表进行切片操作,不能对元组和字符串进行切片操作。(错) 只能通过切片访问列表中的元素,不能使用切片修改列表中的元素。(错) 只能通过切片访问元组中的元素,不能使用切片修改元组中的元素。(对) 字符串属于Python有序序列,和列表、元组一样都支持双向索引。(对) Python字典和集合支持双向索引。(错)

..

.

79、 80、 81、 82、

Python集合不支持使用下标访问其中的元素。(对)

相同内容的字符串使用不同的编码格式进行编码得到的结果并不完全相同。(对) 删除列表中重复元素最简单的方法是将其转换为集合后再重新转换为列表。(对) 已知列表x中包含超过5个以上的元素,那么语句 x = x[:5]+x[5:] 的作用是将列表

x中的元素循环左移5位。(错) 83、 84、 85、 86、 87、

对于生成器对象x = (3 for i in range(5)),连续两次执行list(x)的结果是一样的。(错) 对于大量列表的连接,extend()方法比运算符+具有更高的效率。(对) 表达式 {1, 3, 2} > {1, 2, 3} 的值为True。(错)

列表对象的extend()方法属于原地操作,调用前后列表对象的地址不变。(对) 对于数字n,如果表达式 0 not in [n%d for d in range(2, n)] 的值为True则说明n是

素数。(对) 88、 89、 90、 91、 92、 93、 94、 95、 96、 97、 98、 99、

..

表达式 ‘a’+1的值为’b’。(错)

创建只包含一个元素的元组时,必须在元素后面加一个逗号,例如(3,)。(对) 表达式 list('[1, 2, 3]') 的值是[1, 2, 3]。(错) 同一个列表对象中的元素类型可以各不相同。(对) 同一个列表对象中所有元素必须为相同类型。(错)

已知x为非空列表,那么执行语句x[0] = 3之后,列表对象x的内存地址不变。(对) 列表可以作为集合的元素。(错) 集合可以作为列表的元素。(对) 元组可以作为集合的元素。(对) 集合可以作为元组的元素。(对) 字典可以作为集合的元素。(错) 集合可以作为字典的键。(错)

.

100、 101、 102、

集合可以作为字典的值。(对)

可以使用del删除集合中的部分元素。(错)

列表对象的pop()方法默认删除并返回最后一个元素,如果列表已空则抛出异常。

(对) 103、 104、 105、 106、 107、

表达式 {1, 2} * 2 的值为 {1, 2, 1, 2}。(错) Python字典支持双向索引。(错) Python集合支持双向索引。(错) Python元组支持双向索引。(对)

假设re模块已成功导入,并且有 pattern = re.compile('^'+'\\.'.join([r'\\d{1,3}' for i in

range(4)])+'$'),那么表达式 pattern.match('192.168.1.103') 的值为None。(错) 108、

假设random模块已导入,那么表达式 random.sample(range(10), 20) 的作用是生成

20个不重复的整数。(错) 109、

假设random模块已导入,那么表达式 random.sample(range(10), 7) 的作用是生成7

个不重复的整数。(对) 110、 111、 112、 113、 114、

使用random模块的函数randint(1, 100)获取随机数时,有可能会得到100。(对) 已知x = (1, 2, 3, 4),那么执行x[0] = 5之后,x的值为(5, 2, 3, 4)。(错) 已知x = 3,那么执行x += 6语句前后x的内存地址是不变的。(错) 成员测试运算符in作用于集合时比作用于列表快得多。(对)

内置函数len()返回指定序列的元素个数,适用于列表、元组、字符串、字典、集

合以及range、zip等迭代对象。(对) 115、

已知x和y是两个等长的整数列表,那么表达式sum((i*j for i, j in zip(x, y)))的作用

是计算这两个列表所表示的向量的内积。(对) 116、

已知x和y是两个等长的整数列表,那么表达式[i+j for i,j in zip(x,y)]的作用时计算

这两个列表所表示的向量的和。(对)

..

.

117、 表达式int('1'*64, 2)与sum(2**i for i in range(64))的计算结果是一样的,但是前者更

快一些。(对) 118、 119、 120、 121、

已知x = list(range(20)),那么语句del x[::2]可以正常执行。(对) 已知x = list(range(20)),那么语句x[::2] = []可以正常执行。(错) 已知x = list(range(20)),那么语句print(x[100:200])无法正常执行。(错) 已知x是个列表对象,那么执行语句y = x之后,对y所做的任何操作都会同样作

用到x上。(对) 122、

已知x是个列表对象,那么执行语句y = x[:]之后,对y所做的任何操作都会同样

作用到x上。(错) 123、

在Python中,变量不直接存储值,而是存储值的引用,也就是值在内存中的地址。

(对) 124、 125、

表达式(i**2 for i in range(100))的结果是个元组。(错)

在Python中元组的值是不可变的,因此,已知x = ([1], [2]),那么语句x[0].append(3)

是无法正常执行的。(错) 126、 127、

Python内置的字典dict中元素是按添加的顺序依次进行存储的。(错)

Python内置的集合set中元素顺序是按元素的哈希值进行存储的,并不是按先后顺

序。(对) 128、 129、

已知x = {1:1, 2:2},那么语句x[3] =3无法正常执行。(错)

Python内置字典是无序的,如果需要一个可以记住元素插入顺序的字典,可以使

用collections.OrderedDict。(对) 130、 131、 132、

已知列表x = [1, 2, 3, 4],那么表达式x.find(5)的值应为-1。(错)

列表对象的排序方法sort()只能按元素从小到大排列,不支持别的排序方式。(错) 已知x是一个列表,那么x = x[3:] + x[:3]可以实现把列表x中的所有元素循环左移

3位。(对)

..

.

第3章 选择结构与循环结构 133、

如果仅仅是用于控制循环次数,那么使用for i in range(20)和for i in range(20, 40)的

作用是等价的。(对) 134、 135、 136、

在循环中continue语句的作用是跳出当前循环。(错)

在编写多层循环时,为了提高运行效率,应尽量减少内循环中不必要的计算。(对) 带有else子句的循环如果因为执行了break语句而退出的话,则会执行else子句中

的代码。(错) 137、

对于带有else子句的循环语句,如果是因为循环条件表达式不成立而自然结束循

环,则执行else子句中的代码。(对) 138、

第4章 字符串与正则表达式 139、 140、 141、 142、 143、 144、

在UTF-8编码中一个汉字需要占用3个字节。(对) 在GBK和CP936编码中一个汉字需要2个字节。(对) 在Python中,任意长的字符串都遵守驻留机制。(错)

Python运算符%不仅可以用来求余数,还可以用来格式化字符串。(对) Python字符串方法replace()对字符串进行原地修改。(错)

如果需要连接大量字符串成为一个字符串,那么使用字符串对象的join()方法比运在条件表达式中不允许使用赋值运算符“=”,会提示语法错误。(对)

算符+具有更高的效率。(对) 145、

正则表达式模块re的match()方法是从字符串的开始匹配特定模式,而search()方

法是在整个字符串中寻找模式,这两个方法如果匹配成功则返回match对象,匹配失败则返回空值None。(对)

..

.

146、 147、 148、 149、 150、 151、 152、 153、

已知x为非空字符串,那么表达式 ''.join(x.split()) == x 的值一定为True。(错) 已知x为非空字符串,那么表达式 ','.join(x.split(',')) == x 的值一定为True。(对) 当作为条件表达式时,[]与None等价。(对) 表达式 [] == None 的值为True。(错) 当作为条件表达式时,{}与None等价。(对) 表达式 {}==None 的值为True。(错) 表达式 pow(3,2) == 3**2 的值为True。(对)

当作为条件表达式时,空值、空字符串、空列表、空元组、空字典、空集合、空迭

代对象以及任意形式的数字0都等价于False。(对) 154、

正则表达式对象的match()方法可以在字符串的指定位置开始进行指定模式的匹

配。(对) 155、

使用正则表达式对字符串进行分割时,可以指定多个分隔符,而字符串对象的split()

方法无法做到这一点。(对) 156、

正则表达式元字符“^”一般用来表示从字符串开始处进行匹配,用在一对方括号

中的时候则表示反向匹配,不匹配方括号中的字符。(对) 157、 158、 159、

正则表达式元字符“\\s”用来匹配任意空白字符。(对) 正则表达式 元字符“\\d”用来匹配任意数字字符。(对)

已知x和y是两个字符串,那么表达式sum((1 for i,j in zip(x,y) if i==j))可以用来计

算两个字符串中对应位置字符相等的个数。(对) 160、 161、

Python 3.x中字符串对象的encode()方法默认使用utf8作为编码方式。(对) 已知x = 'hellow world.'.encode(),那么表达式x.decode('gbk')的值为'hellow world.'。

(对) 162、

已知x = 'Python是一种非常好的编程语言'.encode(),那么表达式x.decode('gbk')的

值为'Python是一种非常好的编程语言'。(错)

..

.

163、 164、

正则表达式'^http'只能匹配所有以'http'开头的字符串。(对)

正则表达式'^\\d{18}|\\d{15}$'只能检查给定字符串是否为18位或15位数字字符,并

不能保证一定是合法的身份证号。(对) 165、 166、 167、

第5章 函数设计与应用 168、 169、 170、 171、

调用函数时,在实参前面加一个型号*表示序列解包。(对) 在Python 3.x中语句 print(*[1,2,3]) 不能正确执行。(错) 函数是代码复用的一种方式。(对)

定义函数时,即使该函数不需要接收任何参数,也必须保留一对空的圆括号来表示正则表达式'[^abc]'可以一个匹配任意除'a'、'b'、'c'之外的字符。(对) 正则表达式'python|perl'或'p(ython|erl)'都可以匹配'python'或'perl'。(对) 字节串b'hello world'和b'hello world.'的MD5值相差很小。(错)

这是一个函数。(对) 172、 173、 174、 175、 176、 177、 178、 179、

编写函数时,一般建议先对参数进行合法性检查,然后再编写正常的功能代码。(对) 一个函数如果带有默认值参数,那么必须所有参数都设置默认值。(错) 定义Python函数时必须指定函数返回值类型。(错)

定义Python函数时,如果函数中没有return语句,则默认返回空值None。(对) 如果在函数中有语句 return 3,那么该函数一定会返回整数3。(错) 函数中必须包含return语句。(错)

函数中的return语句一定能够得到执行。(错)

不同作用域中的同名变量之间互相不影响,也就是说,在不同的作用域内可以定义

同名的变量。(对) 180、

全局变量会增加不同函数之间的隐式耦合度,从而降低代码可读性,因此应尽量避

..

.

免过多使用全局变量。(对) 181、 182、

函数内部定义的局部变量当函数调用结束后被自动删除。(对)

在函数内部,既可以使用global来声明使用外部全局变量,也可以使用global直接

定义全局变量。(对) 183、 184、 185、 186、

在函数内部没有办法定义全局变量。(错)

在函数内部直接修改形参的值并不影响外部实参的值。(对) 在函数内部没有任何方法可以影响实参的值。(错)

调用带有默认值参数的函数时,不能为默认值参数传递任何值,必须使用函数定义

时设置的默认值。(错) 187、 188、 189、

在同一个作用域内,局部变量会隐藏同名的全局变量。(对)

形参可以看做是函数内部的局部变量,函数运行结束之后形参就不可访问了。(对) 假设已导入random标准库,那么表达式 max([random.randint(1, 10) for i in

range(10)]) 的值一定是10。(错) 190、

Python标准库random的方法randint(m,n)用来生成一个[m,n]区间上的随机整数。

(对) 191、

在函数内部没有任何声明的情况下直接为某个变量赋值,这个变量一定是函数内部

的局部变量。(对) 192、 193、 194、 195、 196、

在Python中定义函数时不需要声明函数参数的类型。(对) 在Python中定义函数时不需要声明函数的返回值类型。(对) 在函数中没有任何办法可以通过形参来影响实参的值。(错) 已知 x = 3,那么执行语句 x+=6 之后,x的内存地址不变。(错)

在定义函数时,某个参数名字前面带有一个*符号表示可变长度参数,可以接收任

意多个普通实参并存放于一个元组之中。(对) 197、

..

在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任

.

意多个关键参数并将其存放于一个字典之中。(对) 198、

定义函数时,带有默认值的参数必须出现在参数列表的最右端,任何一个带有默认

值的参数右边不允许出现没有默认值的参数。(对) 199、

在调用函数时,可以通过关键参数的形式进行传值,从而避免必须记住函数形参顺

序的麻烦。(对) 200、 201、 202、

在调用函数时,必须牢记函数形参顺序才能正确传值。(错) 调用函数时传递的实参个数必须与函数形参个数相等才行。(错)

在编写函数时,建议首先对形参进行类型检查和数值范围检查之后再编写功能代

码,或者使用异常处理结构,尽量避免代码抛出异常而导致程序崩溃。(对) 203、 204、 205、 206、 207、 208、

第6章 面向对象程序设计 209、 210、 211、 212、 213、

在Python中定义类时,如果某个成员名称前有2个下划线则表示是私有成员。(对) 在类定义的外部没有任何办法可以访问对象的私有成员。(错) Python中一切内容都可以称为对象。(对) 栈和队列的都具有先入后出的特点。(错)

在一个软件的设计与开发中,所有类名、函数名、变量名都应该遵循统一的风格和lambda表达式中可以使用任意复杂的表达式,但是必须只编写一个表达式。(对) g = lambda x: 3不是一个合法的赋值表达式。(错)

包含yield语句的函数一般成为生成器函数,可以用来创建生成器对象。(对) 在函数中yield语句的作用和return完全一样。(错) 语句pass仅起到占位符的作用,并不会做任何操作。(对) 无法使用lambda表达式定义有名字的函数。(错)

..

.

规范。(对) 214、

定义类时所有实例方法的第一个参数用来表示对象本身,在类的外部通过对象名来

调用实例方法时不需要为该参数传值。(对) 215、

在面向对象程序设计中,函数和方法是完全一样的,都必须为所有参数进行传值。

(错) 216、 217、

Python中没有严格意义上的私有成员。(对)

在Python中定义类时,运算符重载是通过重写特殊方法实现的。例如,在类中实

现了__mul__()方法即可支持该类对象的**运算符。(错) 218、

在IDLE交互模式下,一个下划线“_”表示解释器中最后一次显示的内容或最后

一次语句正确执行的输出结果。(对) 219、

对于Python类中的私有成员,可以通过“对象名._类名__私有成员名”的方式来

访问。(对) 220、 221、

运算符“-”可以用于集合的差集运算。(对)

如果定义类时没有编写析构函数,Python将提供一个默认的析构函数进行必要的

资源清理工作。(对) 222、

已知seq为长度大于10的列表,并且已导入random模块,那么[random.choice(seq)

for i in range(10)]和random.sample(seq,10)等价。(错) 223、 224、

在派生类中可以通过“基类名.方法名()”的方式来调用基类中的方法。(对) Python支持多继承,如果父类中有相同的方法名,而在子类中调用时没有指定父

类名,则Python解释器将从左向右按顺序进行搜索。(对) 225、 226、

在Python中定义类时实例方法的第一个参数名称必须是self。(错)

在Python中定义类时实例方法的第一个参数名称不管是什么,都表示对象自身。

(对) 227、 228、

..

定义类时如果实现了__contains__()方法,该类对象即可支持成员测试运算in。(对) 定义类时如果实现了__len__()方法,该类对象即可支持内置函数len()。(对)

.

229、 230、 231、 232、

定义类时实现了__eq__()方法,该类对象即可支持运算符==。(对) 定义类时实现了__pow__()方法,该类对象即可支持运算符**。(对) Python类的构造函数是__init__()。(对)

定义类时,在一个方法前面使用@classmethod进行修饰,则该方法属于类方法。

(对) 233、

定义类时,在一个方法前面使用@staticmethod进行休息,则该方法属于静态方法。

(对) 234、 235、 236、 237、

通过对象不能调用类方法和静态方法。(错)

在Python中可以为自定义类的对象动态增加新成员。(对) Python类不支持多继承。(错)

属性可以像数据成员一样进行访问,但赋值时具有方法的优点,可以对新值进行检

查。(对) 238、 239、 240、 241、 242、 243、

只可以动态为对象增加数据成员,而不能为对象动态增加成员方法。(错) 任何包含__call__()方法的类的对象都是可调用的。(对) 在Python中函数和类都属于可调用对象。(对)

函数和对象方法是一样的,内部实现和外部调用都没有任何区别。(错) 在设计派生类时,基类的私有成员默认是不会继承的。(对)

如果在设计一个类时实现类__len__()方法,那么该类的对象会自动支持Python内

置函数len()。(对)

第7章 文件操作 244、

扩展库os中的方法remove()可以删除带有只读属性的文件。(错)

..

.

245、 246、 247、 248、 249、

使用内置函数open()且以”w”模式打开的文件,文件指针默认指向文件尾。(错) 使用内置函数open()打开文件时,只要文件路径正确就总是可以正确打开的。(错) 使用print()函数无法将信息写入文件。(错)

对文件进行读写操作之后必须显式关闭文件以确保所有内容都得到保存。(对) Python标准库os中的方法startfile()可以启动任何已关联应用程序的文件,并自动

调用关联的程序。(对) 250、

Python标准库os中的方法startfile()可以用来打开外部程序或文件,系统会自动关

联相应的程序来打开或执行指定的文件。(对) 251、

假设os模块已导入,那么列表推导式 [filename for filename in

os.listdir('C:\\\\Windows') if filename.endswith('.exe')] 的作用是列出C:\\Windows文件夹中所有扩展名为.exe的文件。(对) 252、 253、 254、

二进制文件不能使用记事本程序打开。(错)

使用普通文本编辑器软件也可以正常查看二进制文件的内容。(错)

二进制文件也可以使用记事本或其他文本编辑器打开,但是一般来说无法正常查看

其中的内容。(对) 255、 256、 257、 258、

Python标准库os中的方法isfile()可以用来测试给定的路径是否为文件。(对) Python标准库os中的方法exists()可以用来测试给定路径的文件是否存在。(对) Python标准库os中的方法isdir()可以用来测试给定的路径是否为文件夹。(对) Python标准库os中的方法listdir()返回包含指定路径中所有文件和文件夹名称的列

表。(对) 259、 260、 261、 262、

..

Python扩展库xlwt支持对Excel 2003或更低版本的Excel文件进行写操作。(对) Python扩展库xlrd支持对Excel 2003或更低版本的Excel文件进行读操作。(对) 标准库os的rename()方法可以实现文件移动操作。(对)

标准库os的listdir()方法默认只能列出指定文件夹中当前层级的文件和文件夹列

.

表,而不能列出其子文件夹中的文件。(对) 263、 264、 265、

文件对象的tell()方法用来返回文件指针的当前位置。(对) 以写模式打开的文件无法进读操作。(对)

假设已成功导入os和sys标准库,那么表达式 os.path.dirname(sys.executable) 的值

为Python安装目录。(对) 266、 267、 268、

以读模式打开文件时,文件指针指向文件开始处。(对) 以追加模式打开文件时,文件指针指向文件尾。(对)

二进制文件也可以使用记事本程序打开,只是无法正确阅读和理解其中的内容。

(对) 269、

文本文件是可以迭代的,可以使用for line in fp类似的语句遍历文件对象fp中的每

一行。(对) 270、 271、

Python的主程序文件python.exe属于二进制文件。(对)

对字符串信息进行编码以后,必须使用同样的或者兼容的编码格式进行解码才能还

原本来的信息。(对) 272、

使用pickle进行序列化得到的二进制文件使用struct也可以正确地进行反序列化。

(错) 273、

已知当前文件夹中有一个文件readme.txt具有只读属性,假设标准库os已正确导

入,那么可以通过语句os.chmod('readme.txt', 0o777)来删除该文件的只读属性。(对) 274、

第8章 异常处理结构与程序调试、测试 275、

在try...except...else结构中,如果try块的语句引发了异常则会执行else块中的代码。Python标准库os的函数remove()不能删除具有只读属性的文件。(对)

(错)

..

.

276、 277、 278、 279、 280、 281、

异常处理结构中的finally块中代码仍然有可能出错从而再次引发异常。(对) 程序中异常处理结构在大多数情况下是没必要的。(错)

带有else子句的异常处理结构,如果不发生异常则执行else子句中的代码。(对) 异常处理结构也不是万能的,处理异常的代码也有引发异常的可能。(对) 在异常处理结构中,不论是否发生异常,finally子句中的代码总是会执行的。(对) 由于异常处理结构try...except...finally...中finally里的语句块总是被执行的,所以把

关闭文件的代码放到finally块里肯定是万无一失,一定能保证文件被正确关闭并且不会引发任何异常。(错)

第9章 GUI编程 282、

在GUI设计中,复选框往往用来实现非互斥多选的功能,多个复选框之间的选择

互不影响。(对) 283、

在GUI设计中,单选按钮用来实现用户在多个选项中的互斥选择,在同一组内多

个选项中只能选择一个,当选择发生变化之后,之前选中的选项自动失效。(对)

第10章 网络程序设计 284、 285、 286、

Python代码可以内嵌在asp文件中。(对) 无法配置IIS来支持Python程序的运行。(错)

使用TCP协议进行通信时,必须首先建立连接,然后进行数据传输,最后再关闭

连接。(对) 287、

TCP是可以提供良好服务质量的传输层协议,所以在任何场合都应该优先考虑使

用。(错)

..

.

第11章大数据处理

第12章 Windows系统编程 288、

可以使用py2exe或pyinstaller等扩展库把Python源程序打包成为exe文件,从而

脱离Python环境在Windows平台上运行。(对) 289、

第13章 多线程与多进程编程 290、 291、

继承自threading.Thread类的派生类中不能有普通的成员方法。(错)

Python标准库threading中的Lock、RLock、Condition、Event、Semaphore对象都Python程序只能在安装了Python环境的计算机上以源代码形式运行。(错)

可以用来实现线程同步。(对) 292、 293、

在编写应用程序时,应合理控制线程数量,线程并不是越多越好。(对) 在多线程编程时,当某子线程的daemon属性为False时,主线程结束时会检测该

子线程是否结束,如果该子线程尚未运行结束,则主线程会等待它完成后再退出。(对) 294、

在4核CPU平台上使用多线程编程技术可以很轻易地获得400%的处理速度提升。

(错) 295、

多线程编程技术主要目的是为了提高计算机硬件的利用率,没有别的作用了。(错)

..

.

第14章 数据库编程 296、

Python只能使用内置数据库SQLite,无法访问MS SQLServer、ACCESS或Oracle、

MySQL等数据库。(错)

第15章 多媒体编程 297、

使用OpenGL画图时,画点是最基本的操作,具体生成的图形由glBegin()函数指

定的mode来决定。例如,mode值为GL_TRIANGLES时表示将要绘制三角形。(对) 298、

OpenGL采用的“状态机”工作方式,一旦设置了某种状态以后,除非显式修改该

状态,否则该状态将一直保持。(对)

第16章 逆向工程与软件分析

第17章 科学计算与可视化

第18 密码学编程

第19章 安卓平台的Python编程

..

.

三、简答题

1、 简单解释Python基于值的自动内存管理方式?(Python采用的是基于值得内存管理方

式,在Python中可以为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一个内存地址;Python具有自动内存管理功能,会自动跟踪内存中所有的值,对于没有任何变量指向的值,Python自动将其删除。)

2、 写出Python运算符&的两种功能?(1)数字位运算;2)集合交集运算。)

3、 在Python中导入模块中的对象有哪几种方式?(1)import 模块名 [as 别名];2)from 模

块名 import 对象名[ as 别名];3)from math import *)

4、 解释Python脚本程序的“__name__”变量及其作用?(每个Python脚本在运行时都有

一个“__name__”属性。如果脚本作为模块被导入,则其“__name__”属性的值被自动设置为模块名;如果脚本独立运行,则其“__name__”属性值被自动设置为“__main__”。利用“__name__”属性即可控制Python程序的运行方式。)

5、 为什么应尽量从列表的尾部进行元素的增加与删除操作?(当列表增加或删除元素时,

列表对象自动进行内存扩展或收缩,从而保证元素之间没有缝隙,但这涉及到列表元素的移动,效率较低,应尽量从列表尾部进行元素的增加与删除操作以提高处理速度。) 6、 分析逻辑运算符“or”的短路求值特性?(假设有表达式“表达式1 or 表达式2”,如

果表达式1的值等价于True,那么无论表达式2的值是什么,整个表达式的值总是等价于True。因此,不需要再计算表达式2的值。)

7、 简单解释Python中短字符串驻留机制?(对于短字符串,将其赋值给多个不同的对象时,

内存中只有一个副本,多个对象共享改副本。)

8、 异常和错误有什么区别?(异常是指因为程序执行过程中出错而在正常控制流以外采取

的行为。严格来说,语法错误和逻辑错误不属于异常,但有些语法错误往往会导致异常,例如由于大小写拼写错误而访问不存在的对象,或者试图访问不存在的文件,等等。) 9、 使用pdb模块进行Python程序调试主要有哪几种用法?(1)在交互模式下使用pdb模

块提供的功能可以直接调试语句块、表达式、函数等多种脚本。2)在程序中嵌入断点

..

.

来实现调试功能。在程序中首先导入pdb模块,然后使用pdb.set_trace()在需要的位置设置断点。如果程序中存在通过该方法调用显式插入的断点,那么在命令提示符环境下执行该程序或双击执行程序时将自动打开pdb调试环境,即使该程序当前不处于调试状态。3)使用命令行调试程序。在命令行提示符下执行“python –m pdb 脚本文件名”,则直接进入调试环境;当调试结束或程序正常结束以后,pdb将重启该程序。) 10、

阅读下面的代码,并分析假设文件“D:\est.txt”不存在的情况下两段代码可能发生

的问题。

代码1: >>> try: fp = open(r'd:\est.txt') print('Hello world!', file=fp) finally: fp.close() 代码2: >>> try: fp = open(r'd:\est.txt', 'a+') print('Hello world!', file=fp) finally: fp.close() 答:

假设文件“D:\est.txt”不存在,那么第一段代码会抛出异常,提示fp没有定义;第二段代码执行正常。原因是第二段代码使用内置函数open()打开指定文件时如果不存在则会创建该文件,从而不会抛出异常。

11、 下面的代码本意是把当前文件夹中所有html文件都改为htm文件,仔细阅读代码,

简要说明可能存在的问题。 import os

file_list=os.listdir(\".\")

for filename in file_list: pos = filename.rindex(\".\") if filename[pos+1:] == \"html\": newname = filename[:pos+1]+\"htm\" os.rename(filename,newname) print(filename+\"更名为:\"+newname) 答:

对于字符串对象,如果要查找的子字符串不存在,则rindex()方法会抛出异常。所以,如果

..

.

当前文件夹中有不包含圆点的文件名或者子文件夹名,上面的代码会抛出异常而崩溃。

12、 四、编程题 1、编写程序,在D盘根目录下创建一个文本文件test.txt,并向其中写入字符串hello world。 答:

fp = open(r’D:\est.txt’, ‘a+’) print(‘hello world’, file=fp) fp.close()

2、写出下面代码的优化版本,提高运行效率。 x = list(range(500)) for item in x: t = 5**5

print(item+t) 答:

x = list(range(500)) t = 5**5 for item in x: print(item+t) 3、编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。(提示:使用切片。) 答:

import random

x = [random.randint(0,100) for i in range(20)] print(x) y = x[::2]

y.sort(reverse=True) x[::2] = y print(x)

4、写出下面代码的执行结果。 def Join(List, sep=None):

return (sep or ',').join(List) print(Join(['a', 'b', 'c'])) print(Join(['a', 'b', 'c'],':')) 答: a,b,c a:b:c

5、写出下面代码的运行结果。 def Sum(a, b=3, c=5): return sum([a, b, c]) print(Sum(a=8, c=2)) print(Sum(8)) print(Sum(8,2)) 答:

..

.

13 16 15

6、写出下面代码的运行结果。 def Sum(*p):

return sum(p) print(Sum(3, 5, 8)) print(Sum(8))

print(Sum(8, 2, 10)) 答: 16 8 20

7、编写函数,判断一个数字是否为素数,是则返回字符串YES,否则返回字符串NO。 答:

import math def IsPrime(v):

n = int(math.sqrt(v)+1) for i in range(2,n): if v%i==0: return 'No' else:

return 'Yes'

8、编写函数,模拟Python内置函数sorted()。 答:

def Sorted(v): t = v[::] r = [] while t:

tt = min(t) r.append(tt) t.remove(tt) return r

9、编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果。 答:

import random

x = [random.randint(0,100) for i in range(20)] print(x) y = x[0:10] y.sort() x[0:10] = y y = x[10:20]

y.sort(reverse=True)

..

.

x[10:20] = y print(x)

10、编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年。 答:

x = input('Please input an integer of 4 digits meaning the year:') x = eval(x)

if x%400==0 or (x%4==0 and not x%100==0): print('Yes') else:

print('No')

11、编写程序,实现分段函数计算,如下表所示。 x x<0 0<=x<5 5<=x<10 10<=x<20 20<=x 0 x 3x-5 0.5x-2 0 y 答:

x = input('Please input x:') x = eval(x)

if x<0 or x>=20: print(0) elif 0<=x<5: print(x) elif 5<=x<10: print(3*x-5) elif 10<=x<20:

print(0.5*x-2)

12、阅读下面的程序,判断其是否可以正常运行,如果可以运行则写出执行结果,如果不能运行则写出理由。 class Test:

def __init__(self, value): self.__value = value @property

..

.

def value(self):

return self.__value

t = Test(3) t.value = 5 print(t.value) 答:

不能运行。程序中定义的是只读属性,不能修改属性的值。 13、下面代码的功能是,随机生成50个介于[1,20]之间的整数,然后统计每个整数出现频率。请把缺少的代码补全。 import random

x = [random.____________(1,20) for i in range(_______)] r = dict() for i in x:

r[i] = r.get(i, _____)+1 for k, v in r.items():

print(k, v) 答:

分别填写randint、50、0

14、假设有Python程序文件demo.py,代码如下: def main():

if __name__ == '__main__': print(1) else:

print(2)

main()

将该程序文件直接运行时输出结果为_________,作为模块导入时得到结果___________-。(1、2)

15、下面程序的执行结果是__________________。(1) s = 0

for i in range(1,101): s += i else:

print(1)

16、下面程序的执行结果是______________。(1275) s = 0

for i in range(1,101): s += i if i == 50: print(s) break else:

print(1)

..

.

17、下面的程序是否能够正常执行,若不能,请解释原因;若能,请分析其执行结果。 from random import randint

result = set() while True:

result.add(randint(1,10)) if len(result)==20: break print(result)

答:无法正确执行,因为该程序的功能是从[1,10]区间中选择20个不同的随机整数,而该区间并没有这么多整数,所以程序死循环。

18、下面的代码是否能够正确运行,若不能请解释原因;若能,请分析其执行结果。 >>> x = list(range(20)) >>> for i in range(len(x)): del x[i]

答:无法正确执行,因为删除列表元素时会影响其他元素在列表中的索引,上面的代码会抛出下标越界的异常。

19、阅读下面的代码,解释其功能。 >>> x = list(range(20))

>>> for index, value in enumerate(x): if value == 3: x[index] = 5

答:将列表x中值为3的元素修改为5。 20、阅读下面的代码,解释其功能。 >>> x = [range(3*i, 3*i+5) for i in range(2)] >>> x = list(map(list, x))

>>> x = list(map(list, zip(*x)))

答:首先生成一个包含列表的列表,然后模拟矩阵转置。 21、阅读下面的代码,解释其功能。 >>> import string

>>> x = string.ascii_letters + string.digits >>> import random

>>> print(''.join(random.sample(x, 10)))

答:输出由英文字母大小写或数字组成的长度为10且不重复的随机字符串。 22、阅读下面的代码,分析其执行结果。 def demo(*p): return sum(p) print(demo(1,2,3,4,5)) print(demo(1,2,3)) 答:输出结果为 15 6

23、阅读下面的代码,分析其执行结果。 def demo(a, b, c=3, d=100):

..

.

return sum((a,b,c,d)) print(demo(1, 2, 3, 4)) print(demo(1, 2, d=3)) 答:输出结果为 10 9

24、下面的代码输出结果为_____________。(3) def demo(): x = 5 x = 3 demo() print(x)

25、下面函数的功能为_______________。(将序列循环左移k位,得到新序列并返回) def demo(lst, k): if k26、编写函数,求任意整数的二进制形式中最后连续0的个数。 def demo(n): b_n = bin(n) index = b_n.rfind('1') + 1 return len(b_n[index:])

27、有n个乒乓球运动员打淘汰赛,编写函数计算至少需要多少场比赛才能决出冠军,不允许直接使用n-1。 def demo(n): if n == 1: return 0 if n == 2: return 1

m, c = divmod(n, 2) return m + demo(c+m)

28、使用循环和列表推导式两种方法求解百钱买百鸡问题。假设大鸡5元一只,中鸡3元一只,小鸡1元三只,现有100元钱想买100只鸡,有多少种买法? (1)循环

>>> for x in range(21): for y in range(34): z = 100-x-y if z%3==0 and 5*x + 3*y + z//3 == 100: print(x,y,z) 0 25 75 4 18 78 8 11 81 12 4 84

(2)列表推导式

..

.

>>> [(x, y, 100-x-y) for x in range(21) for y in range(34) if (100-x-y)%3==0 and 5*x+3*y+(100-x-y)//3==100]

[(0, 25, 75), (4, 18, 78), (8, 11, 81), (12, 4, 84)]

29、编写函数,给定任意字符串,找出其中只出现一次的字符,如果有多个这样的字符,就全部找出。

def searchOne(s): # 创建空字典 d = dict()

# 遍历字符串,并分别记录每个字符的出现次数 for ch in s:

# 这里重点演示字典的get()方法 # 如果这个字符出现过,加1 # 如果这个字符第一次出现,0+1 d[ch] = d.get(ch, 0) + 1

# 列表推导式,查找所有只出现一次的字符 chs = [ch for ch, n in d.items() if n==1]

# 返回最终结果,所有只出现一次的字符 return chs

print(searchOne('abcdddca'))

30、阅读以下冒泡法排序代码,尝试写出优化代码,提高代码运行效率。 from random import randint

def bubbleSort(lst): length = len(lst)

for i in range(0, length):

for j in range(0, length-i-1):

#比较相邻两个元素大小,并根据需要进行交换 if lst[j] > lst[j+1]:

lst[j], lst[j+1] = lst[j+1], lst[j]

lst = [randint(1, 100) for i in range(20)] print('Before sort:\\n', lst) bubbleSort(lst)

print('After sort:\\n', lst)

参考答案:

from random import randint

def bubbleSort(lst): length = len(lst)

for i in range(0, length): flag = True

..

.

for j in range(0, length-i-1):

#比较相邻两个元素大小,并根据需要进行交换 if lst[j] > lst[j+1]:

lst[j], lst[j+1] = lst[j+1], lst[j] flag = False if flag: break

lst = [randint(1, 100) for i in range(20)] print('Before sort:\\n', lst) bubbleSort(lst)

print('After sort:\\n', lst) 31、编写程序,用户输入带有千分位逗号的数字字符串,然后输出不带千分位逗号的数字字符串。如果输入字符串'0'则退出程序。 参考答案:

def convert(strNumber):

return ''.join(strNumber.split(','))

while True:

x = input('输入带有千分位逗号的数字:') if x == '0':

print('bye') break

print(convert(x)) 32、编写程序,用户输入不带千分位逗号的数字字符串,然后输出带千分位逗号的数字字符串。

参考答案:

def convert(strNumber): # 考虑小数的情况

temp = strNumber.split('.', 1) # 整数部分 first = temp[0] if not first.isdigit():

return '不是有效数字' # 小数部分 try:

second = temp[1] if not second.isdigit():

return '不是有效数字' except:

second = ''

# 增加千分位逗号 def nested(s):

..

.

result = [] length = len(s) index = length % 3 if index != 0:

result.append(s[:index]) for i in range(index, length, 3): result.append(s[i:i+3]) return ','.join(result)

first = nested(first)

# 小数部分和整数部分的千分位不一样 if second:

second = ''.join(reversed(second)) second = nested(second)

second = ''.join(reversed(second)) # 删除两侧可能的0和千分位逗号 return '.'.join([first, second]).strip(',0') # 删除整数左侧可能的0和逗号 return first.lstrip('0,')

# 测试 while True:

x = input('输入不带千分位逗号的数字:') if x == '0':

print('bye') break

print(convert(x)) 33、3

..

因篇幅问题不能全部显示,请点此查看更多更全内容