Python期末复习
填空题
第1章 基础知识
-
Python安装扩展库常用的是_______工具。(pip)
-
Python标准库math中用来计算平方根的函数是__________。(sqrt)
-
在Python中__________表示空类型。(None)
-
列表、元组、字符串是Python的_________(有序?无序)序列。(有序)
-
查看变量类型的Python内置函数是________________。(type())
-
查看变量内存地址的Python内置函数是_________________。(id())
-
以3为实部4为虚部,Python复数的表达形式为___________或________。(3+4j、3+4J)
-
Python运算符中用来计算整商的是_________。(//)
-
Python运算符中用来计算集合并集的是_______。(|)
-
使用运算符测试集合包含集合A是否为集合B的真子集的表达式可以写作_______。(A<B)
-
______________命令既可以删除列表中的一个元素,也可以删除整个列表。(del)
-
表达式 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())
-
Python内置函数____________用来返回序列中的最大元素。(max())
-
Python内置函数____________用来返回序列中的最小元素。(min())
-
Python内置函数________________用来返回数值型序列中所有元素之和。(sum())
-
为了提高Python代码运行速度和进行适当的保密,可以将Python程序文件编译为扩展名__________的文件。(pyc)
-
已知 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’)
-
表达式 abs(3+4j) 的值为____________。(5.0)
-
表达式 callable(int) 的值为___________。(True)
-
假设有Python程序文件abc.py,其中只有一条语句print(__name__),那么直接运行该程序时得到的结果为_____________。(__main__)
-
表达式16**0.5的值为____________________。(4.0)
-
表达式type({3})的值为____________________。(set)
第2章 Python序列
- 表达式[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 之后,表达式 id(x) == 496103280 的值为___________。(False)
- 已知 x = 3,那么执行语句 x *= 6 之后,x的值为________________。(18)
- 表达式[3] in [1, 2, 3, 4]的值为________________。(False)
- 列表对象的sort()方法用来对列表元素进行原地排序,该函数返回值为 。(None)
- 假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到的值是______________________。([6, 7, 9, 11])
- 使用列表推导式生成包含10个数字5的列表,语句可以写为_______________。([5 for i in range(10)])
- 假设有列表a = [‘name’, ‘age’, ‘sex’]和b = [‘Dong’, 38, ‘Male’],请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为_____________________。(c = dict(zip(a, b)))
- 任意长度的Python列表、元组和字符串中最后一个元素的下标为________。(-1)
- Python语句list(range(1,10,3))执行结果为___________________。([1, 4, 7])
- 表达式 list(range(5)) 的值为________________。([0, 1, 2, 3, 4])
- 切片操作list(range(6))[::2]执行结果为________________。([0, 2, 4])
- 使用切片操作在列表对象x的开始处增加一个元素3的代码为_________。(x[0:0] = [3])
- 语句sorted([1, 2, 3], reverse=True) == reversed([1, 2, 3])执行结果为_________。(False)
- 表达式 sorted([111, 2, 33], key=lambda x: len(str(x))) 的值为________________。([2, 33, 111])
- 表达式 sorted([111, 2, 33], key=lambda x: -len(str(x))) 的值为____________。([111, 33, 2])
- 语句 x = (3,) 执行后x的值为_______________。((3,))
- 语句 x = (3) 执行后x的值为________________。(3)
- 已知x=3和y=5,执行语句 x, y = y, x 后x的值是____。(5)
- 可以使用内置函数_______________查看包含当前作用域内所有全局变量和值的字典。(globals())
- 可以使用内置函数___________________查看包含当前作用域内所有局部变量和值的字典。(locals()()
- 字典中多个元素之间使用____________分隔开,每个元素的“键”与“值”之间使用________分隔开。(逗号、冒号)
- 字典对象的___________方法可以获取指定“键”对应的“值”,并且可以在指定“键”不存在的时候返回指定值,如果不指定则返回None。(get())
- 字典对象的_____________方法返回字典中的“键-值对”列表。(items())
- 字典对象的____________方法返回字典的“键”列表。(keys())
- 字典对象的______________方法返回字典的“值”列表。(values())
- 已知 x = {1:2},那么执行语句 x[2] = 3之后,x的值为________________。({1: 2, 2: 3})
- 表达式 {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])
- 已知 x = [3, 5, 7],那么表达式 x[10:]的值为____________。([])
- 已知 x = [3, 5, 7],那么执行语句 x[len(x):] = [1, 2]之后,x的值为______________。([3, 5, 7, 1, 2])
- 已知 x = [3, 7, 5],那么执行语句 x.sort(reverse=True)之后,x的值为_________________。([7, 5, 3])
- 已知 x = [3, 7, 5],那么执行语句 x = x.sort(reverse=True)之后,x的值为_________。(None)
- 已知 x = [1, 11, 111],那么执行语句 x.sort(key=lambda x: len(str(x)), reverse=True) 之后,x的值为__________________。([111, 11, 1])
- 表达式 list(zip([1,2], [3,4])) 的值为________________________。([(1, 3), (2, 4)])
- 已知 x = [1, 2, 3, 2, 3],执行语句 x.pop() 之后,x的值为_____________。([1, 2, 3, 2])
- 表达式 list(map(list,zip(*[[1, 2, 3], [4, 5, 6]]))) 的值为________________。([[1, 4], [2, 5], [3, 6]])
- 表达式 [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])
- 已知 x = [3,5,3,7],那么表达式 [x.index(i) for i in x if i==3] 的值为______________。([0, 0])
- 已知 x = list(range(10)),则表达式 x[-4:] 的值为__________。([6, 7, 8, 9])
- 已知 x = [3, 5, 7],那么执行语句 x[1:] = [2]之后,x的值为________________。([3, 2])
- 已知x为非空列表,那么执行语句y = x[:]之后,id(x[0]) == id(y[0])的值为__________。(True)
- 已知 x = [1, 2, 3, 2, 3],执行语句 x.remove(2) 之后,x的值为____________。([1, 3, 2, 3])
- 表达式 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)
- 表达式 round(3.7) 的值为_________。(4)
- 已知 x = (3), 那么表达式 x * 3 的值为__________。(9)
- 已知 x = (3,),那么表达式 x * 3 的值为_____________。((3, 3, 3))
- 已知列表 x = [1, 2, 3, 4],那么执行语句 del x[1] 之后x的值为____________。([1, 3, 4])
- 表达式 [1] * 2 的值为_________________。([1, 1])
- 表达式 [1, 2] * 2 的值为______________。([1, 2, 1, 2])
- 已知列表 x = [1, 2, 3],那么执行语句 x.insert(1, 4) 只有,x的值为___________。([1, 4, 2, 3])
- 已知列表 x = [1, 2, 3],那么执行语句 x.insert(0, 4) 只有,x的值为___________。([4, 1, 2, 3])
- 已知列表 x = [1, 2, 3],那么执行语句 x.pop(0) 之后,x的值为_________。([2, 3])
- 已知 x = [[1]] * 3,那么执行语句 x[0][0] = 5之后,变量x的值为________________。([[5], [5], [5]])
- 表达式 list(map(lambda x: x+5, [1, 2, 3, 4, 5])) 的值为______________________。([6, 7, 8, 9, 10])
- 表达式 {1, 2, 3, 4, 5} ^ {4, 5, 6, 7} 的值为_________________________。({1, 2, 3, 6, 7})
- 已知 x = [1, 2, 3],那么执行语句 x[len(x)-1:] = [4, 5, 6]之后,变量x的值为_________________________________。([1, 2, 4, 5, 6])
- 表达式 len(range(1, 10)) 的值为___________。(9)
- 已知x是一个列表对象,那么执行语句 y = x[:] 之后表达式 id(x) == id(y) 的值为___________。(False)
- 表达式 sorted([13, 1, 237, 89, 100], key=lambda x: len(str(x))) 的值为___________________________________。([1, 13, 89, 237, 100])
- 已知 x = {1:2, 2:3},那么表达式 x.get(3, 4) 的值为____。(4)
- 表达式 {1, 2, 3} | {3, 4, 5} 的值为_____________________。({1, 2, 3, 4, 5})
- 表达式 {1, 2, 3} | {2, 3, 4} 的值为______________________。({1, 2, 3, 4})
- 表达式 {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].count(4) 的值为_______________。(0)
- 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})
- 语句 x, y, z = [1, 2, 3] 执行后,变量y的值为__________。(2)
- 已知 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)
- 已知有函数定义 def demo(*p):return sum(p),那么表达式 demo(1, 2, 3) 的值为______、表达式 demo(1, 2, 3, 4) 的值为_________。(6、10)
- 已知列表 x = [1, 2],那么连续执行命令 y = x和 y.append(3) 之后,x的值为________。([1, 2, 3])
- 已知列表 x = [1, 2],执行语句 y = x[:] 后,表达式 id(x) == id(y) 的值为_______。(False)
- 已知列表 x = [1, 2],执行语句 y = x 后,表达式 x is y 的值为_______。(True)
- 已知列表 x = [1, 2],执行语句 y = x[:] 后,表达式 x is not y 的值为_______。(True)
- 表达式 sorted(random.sample(range(5), 5)) 的值为_________________________。([0, 1, 2, 3, 4])
- 表达式 [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]])
- 执行语句 x,y,z = map(str, range(3)) 之后,变量y的值为___________。(’1’)
- 已知列表 x = [1, 2],那么执行语句 x.extend([3]) 之后, x的值为____________。([1, 2, 3])
- 已知列表 x = [1, 2],那么执行语句 x.append([3]) 之后,x的值为_____________。([1, 2, [3]])
- 表达式 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)
- 表达式 [5 for i in range(3)] 的值为_______________。([5, 5, 5])
- 表达式 {1, 2, 3} == {1, 3, 2} 的值为___________。(True)
- 已知 x = [1, 2],那么执行语句 x[0:0] = [3, 3]之后,x的值为___________。([3, 3, 1, 2])
- 已知 x = [1, 2, 3, 4, 5],那么执行语句 del x[1:3] 之后,x的值为____________。([1, 4, 5])
- 已知列表 x = [1, 2, 3] 和 y = [4, 5, 6],那么表达式 [(i,j) for i, j in zip(x,y) if i==3] 的值为____________。([(3, 6)])
- 已知列表 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)
- 表达式 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)
- 已知列表 x = [1, 3, 2],那么执行语句 x.reverse() 之后,x的值为____________。([2, 3, 1])
- 已知列表 x = [1, 3, 2],那么执行语句 x = x.reverse() 之后,x的值为____________。(None)
- 已知x为非空列表,那么表达式 x.reverse() == list(reversed(x)) 的值为__________。(False)
- 已知x为非空列表,那么表达式 x.sort() == sorted(x) 的值为__________。(False)
- 已知列表 x = [1, 3, 2],那么执行语句 y = list(reversed(x)) 之后,x的值为__________。([1, 3, 2])
- 已知列表x中包含超过5个以上的元素,那么表达式 x == x[:5]+x[5:] 的值为________。(True)
- 已知字典 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)
- 已知字典 x = {i:str(i+3) for i in range(3)},那么表达式 ‘‘.join([item[1] for item in x.items()]) 的值为_____________。(’345’)
- 已知列表 x = [1, 3, 2],那么执行语句 a, b, c = sorted(x) 之后,b的值为____。(2)
- 表达式 set([1,2,3]) == {1, 2, 3} 的值为____________。(True)
- 表达式 ‘%s’%65 == str(65) 的值为_____________。(True)
- 表达式 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])
- 已知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)
- 表达式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])的输出结果为_______________。([])
- 已知x = list(range(20)),那么执行语句x[:18] = []后列表x的值为______________。([18, 19])
- 已知x = [1, 2, 3],那么连续执行y = x[:]和y.append(4)这两条语句之后,x的值为____________________。([1, 2, 3])
- 已知x = [1, 2, 3],那么连续执行y = x和y.append(4)这两条语句之后,x的值为____________________。([1, 2, 3, 4])
- 已知x = [1, 2, 3],那么连续执行y = [1, 2, 3]和y.append(4)这两条语句之后,x的值为____________________。([1, 2, 3])
- 已知x = [[]] * 3,那么执行语句x[0].append(1)之后,x的值为____________________。([[1], [1], [1]])
- 已知x = [[] for i in range(3)],那么执行语句x[0].append(1)之后,x的值为_________________。([[1], [], []])
- 已知x = ([1], [2]),那么执行语句x[0].append(3)后x的值为________________。(([1, 3], [2]))
- 已知x = {1:1, 2:2},那么执行语句x.update({2:3, 3:3})之后,表达式sorted(x.items())的值为____________________。([(1, 1), (2, 3), (3, 3)])
- 已知x = {1:1, 2:2},那么执行语句x[3] = 3之后,表达式sorted(x.items())的值为____________________。([(1, 1), (2, 2), (3, 3)])
- 表达式{*range(4), 4, *(5, 6, 7)}的值为__________________。({0, 1, 2, 3, 4, 5, 6, 7})
- 已知 x = [1,2,3,4,5],那么执行语句 x[::2] = range(3) 之后,x的值为_______________。([0, 2, 1, 4, 2])
- 表达式 True*3 的值为__________。(3)
- 表达式 False+1 的值为__________。(1)
第3章 选择结构与循环结构
-
表达式 ‘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中用于表示逻辑与、逻辑或、逻辑非运算的关键字分别是_________、___________、_________。(and、or、not)
-
Python 3.x语句 for i in range(3):print(i, end=’,’) 的输出结果为_____________________。(0,1,2,)
-
Python 3.x语句 print(1, 2, 3, sep=’,’) 的输出结果为________________。(1,2,3)
-
对于带有else子句的for循环和while循环,当循环因循环条件不成立而自然结束时________(会?不会?)执行else中的代码。(会)
-
在循环语句中,__________语句的作用是提前结束本层循环。(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)
第4章 字符串
-
表达式 ‘abc’ in (‘abcdefg’) 的值为______________。(True)
-
表达式 ‘abc’ in [‘abcdefg’] 的值为______________。(False)
-
表达式 ‘\x41’ == ‘A’ 的值为_____________。(True)
-
Python语句’‘.join(list(‘hello world!’))执行的结果是____________________。(’hello world!’)
-
转义字符r’\n’的含义是___________________。(回车换行)
-
已知列表对象x = [‘11’, ‘2’, ‘3’],则表达式 max(x) 的值为___________。(’3’)
-
表达式 min([‘11’, ‘2’, ‘3’]) 的值为_________________。(’11’)
-
已知列表对象x = [‘11’, ‘2’, ‘3’],则表达式max(x, key=len) 的值为___________。(’11’)
-
已知 path = r’c:\test.html’,那么表达式 path[:-4]+’htm’ 的值为__________。(’c:\test.htm’)
-
表达式 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’)
-
表达式 ‘{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)
-
表达式 ‘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’)
-
表达式 ‘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((‘.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’])
-
已知 x = ‘a234b123c’,并且re模块已导入,则表达式 re.split(‘\d+’, x) 的值为_________________。([‘a’, ‘b’, ‘c’])
-
表达式 ‘‘.join(‘asdssfff’.split(‘sd’)) 的值为____________。(’assfff’)
-
表达式 ‘‘.join(re.split(‘[sd]’,’asdssfff’)) 的值为_______________。(’afff’)
-
语句 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)
-
假设正则表达式模块re已导入,那么表达式 re.sub(‘\d+’, ‘1’, ‘a12345bbbb67c890d0e’) 的值为_____________________。(’a1bbbb1c1d1e’)
-
表达式 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’)
-
表达式 ‘hello world, hellow every one’.replace(‘hello’, ‘hi’) 的值为________________________。(’hi world, hiw every one’)
-
已知字符串 x = ‘hello world’,那么执行语句 x.replace(‘hello’, ‘hi’) 之后,x的值为____________。(’hello world’)
-
已知 x = ‘a b c d’,那么表达式 ‘,’.join(x.split()) 的值为___________。(’a,b,c,d’)
-
表达式 ‘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)
-
表达式 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)
-
表达式 ‘abc10’.isalnum() 的值为______________。(True)
-
表达式 ‘abc10’.isalpha() 的值为________________。(False)
-
表达式 ‘abc10’.isdigit() 的值为__________________。(False)
-
表达式 ‘C:\windows\notepad.exe’.endswith(‘.exe’) 的值为________。(True)
-
表达式 ‘%s’%[1,2,3] 的值为_____________。(’[1, 2, 3]‘)
-
表达式 ‘aaasdf’.strip(‘af’) 的值为______________。(’sd’)
-
表达式 len(‘SDIBT’) 的值为__________。(5)
-
表达式 ‘Hello world!’.count(‘l’) 的值为___________。(3)
-
已知 x = ‘abcdefg’,则表达式 x[3:] + x[:3] 的值为___________________。(’defgabc’)
-
已知formatter = ‘good {0}’.format,那么表达式list(map(formatter, [‘morning’]))的值为__________________。([‘good morning’])
-
已知x = ‘hello world.’,那么表达式x.find(‘x’)和x.rfind(‘x’)的值都为_____________。(-1)
-
表达式’:’.join(‘hello world.’.split())的值为___________________。(’hello:world.’)
-
已知x = ‘hello world’,那么表达式x.replace(‘l’, ‘g’)的值为_______________。(’heggo worgd’)
-
表达式’aaaassddf’.strip(‘af’)的值为__________________。(’ssdd’)
-
表达式len(‘aaaassddf’.strip(‘afds’))的值为________________。(0)
-
表达式len(‘hello world’[100:])的值为__________________。(0)
-
表达式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’)
-
表达式 ‘Beautiful is better than ugly.’.startswith(‘Be’, 5) 的值为_________。(False)
-
已知字典 x = {i:str(i+3) for i in range(3)},那么表达式 ‘‘.join(x.values()) 的值为____________。(’345’)
第5章 函数定义与使用
-
Python中定义函数的关键字是_________________。(def)
-
在函数内部可以通过关键字________________来定义全局变量。(global)
-
如果函数中没有return语句或者return语句不带任何返回值,那么该函数的返回值为_________________。(None)
-
表达式 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])
-
表达式 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’])
-
已知函数定义def demo(x, y, op):return eval(str(x)+op+str(y)),那么表达式demo(3, 5, ‘+’)的值为______________________。(8)
-
已知函数定义def demo(x, y, op):return eval(str(x)+op+str(y)),那么表达式demo(3, 5, ‘*‘)的值为______________________。(15)
-
已知函数定义def demo(x, y, op):return eval(str(x)+op+str(y)),那么表达式demo(3, 5, ‘-‘)的值为______________________。(-2)
-
已知f = lambda n: len(bin(n)[bin(n).rfind(‘1’)+1:]),那么表达式f(6)的值为____________________。(1)
-
已知f = lambda n: len(bin(n)[bin(n).rfind(‘1’)+1:]),那么表达式f(7)的值为____________________。(0)
-
已知 g = lambda x, y=3, z=5: x+y+z,那么表达式 g(2) 的值为________。(10)
-
已知函数定义 def func(*p):return sum(p),那么表达式 func(1,2,3) 的值为______。(6)
-
已知函数定义 def func(*p):return sum(p),那么表达式 func(1,2,3, 4) 的值为______。(10)
-
已知函数定义 def func(**p):return sum(p.values()),那么表达式 func(x=1, y=2, z=3) 的值为________。(6)
-
已知函数定义 def func(**p):return ‘‘.join(sorted(p)),那么表达式 func(x=1, y=2, z=3)的值为__________。(’xyz’)
-
已知 f = lambda x: 5,那么表达式 f(3)的值为_____________。(5)
第6章 面向对象程序设计
-
Python使用_________________关键字来定义类。(class)
-
表达式 isinstance(‘abc’, str) 的值为________________。(True)
-
表达式 isinstance(‘abc’, int) 的值为_______________。(False)
-
表达式 isinstance(4j, (int, float, complex)) 的值为_____________。(True)
-
表达式 isinstance(‘4’, (int, float, complex)) 的值为_____________。(False)
-
表达式 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__())
-
在Python中定义类时,与运算符“//”对应的特殊方法名为_______________。(__floordiv__())
-
表达式type({}) == dict的值为_________________。(True)
-
表达式type({}) == set的值为_______________。(False)
-
在Python中,不论类的名字是什么,构造方法的名字都是________________。(__init__)
-
如果在设计一个类时实现了__contains__ ()方法,那么该类的对象会自动支持_____________运算符。(in)
第7章 文件操作
-
对文件进行写入操作之后,_______________方法用来在不关闭文件对象的情况下将缓冲区内容写入文件。(flush())
-
Python内置函数_____________用来打开或创建文件并返回文件对象。(open())
-
使用上下文管理关键字______________可以自动管理文件对象,不论何种原因结束该关键字中的语句块,都能保证文件被正确关闭。(with)
-
Python标准库os中用来列出指定文件夹中的文件和子文件夹列表的方式是____________。(listdir())
-
Python标准库os.path中用来判断指定文件是否存在的方法是______________。(exists())
-
Python标准库os.path中用来判断指定路径是否为文件的方法是_______________。(isfile())
-
Python标准库os.path中用来判断指定路径是否为文件夹的方法是______________。(isdir())
-
Python标准库os.path中用来分割指定路径中的文件扩展名的方法是__________。(splitext())
-
Python扩展库_____________支持Excel 2007或更高版本文件的读写操作。(openpyxl)
-
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章 异常处理结构
- Python内建异常类的基类是________________。(BaseException)
判断题
第1章 基础知识
-
Python是一种跨平台、开源、免费的高级动态编程语言。(对)
-
在Windows平台上编写的Python程序无法在Unix平台运行。(错)
-
不可以在同一台计算机上安装多个Python版本。(错)
-
已知 x = 3,那么赋值语句 x = ‘abcedfg’ 是无法正常执行的。(错)
-
Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型。(错)
-
Python采用的是基于值得自动内存管理方式。(对)
-
在任何时刻相同的值在内存中都只保留一份(错)
-
Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义。(对)
-
在Python 3.x中可以使用中文作为变量名。(对)
-
Python变量名必须以字母或下划线开头,并且区分字母大小写。(对)
-
加法运算符可以用来连接字符串并生成新字符串。(对)
-
9999**9999这样的命令在Python中无法运行。(错)
-
3+4j不是合法的Python表达式。(错)
-
0o12f是合法的八进制数字。(错)
-
不管输入什么,Python 3.x中input()函数的返回值总是字符串。(对)
-
pip命令也支持扩展名为.whl的文件直接安装Python扩展库。(对)
-
只有Python扩展库才需要导入以后才能使用其中的对象,Python标准库不需要导入即可使用其中的所有对象和方法。(错)
-
在Python中0xad是合法的十六进制数字表示形式。(对)
-
Python使用缩进来体现代码之间的逻辑关系。(对)
-
Python代码的注释只有一种方式,那就是使用#符号。(错)
-
放在一对三引号之间的任何内容将被认为是注释。(错)
-
尽管可以使用import语句一次导入任意多个标准库或扩展库,但是仍建议每次只导入一个标准库或扩展库。(对)
-
为了让代码更加紧凑,编写Python程序时应尽量避免加入空格和空行。(错)
-
在Python中可以使用 id 作为变量名,尽管不建议这样做。(对)
-
一个数字5也是合法的Python表达式。(对)
-
执行语句 from math import sin 之后,可以直接使用 sin() 函数,例如 sin(3)。(对)
第2章 Python序列
-
Python支持使用字典的“键”作为下标来访问字典中的值。(对)
-
元组可以作为字典的“键”。(对)
-
字典的“键”必须是不可变的。(对)
-
已知x为非空列表,那么表达式 sorted(x, reverse=True) == list(reversed(x)) 的值一定是True。(错)
-
生成器推导式比列表推导式具有更高的效率,推荐使用。(对)
-
Python集合中的元素不允许重复。(对)
-
Python字典中的“键”不允许重复。(对)
-
Python字典中的“值”不允许重复。(错)
-
Python集合中的元素可以是元组。(对)
-
Python集合中的元素可以是列表。(错)
-
Python字典中的“键”可以是列表。(错)
-
Python字典中的“键”可以是元组。(对)
-
Python列表中所有元素必须为相同类型的数据。(错)
-
Python列表、元组、字符串都属于有序序列。(对)
-
已知A和B是两个集合,并且表达式A<B的值为False,那么表达式A>B的值一定为True。(错)
-
列表对象的append()方法属于原地操作,用于在列表尾部追加一个元素。(对)
-
对于列表而言,在尾部追加元素比在中间位置插入元素速度更快一些,尤其是对于包含大量元素的列表。(对)
-
使用Python列表的方法insert()为列表插入元素时会改变列表中插入位置之后元素的索引。(对)
-
假设x为列表对象,那么x.pop()和x.pop(-1)的作用是一样的。(对)
-
使用del命令或者列表对象的remove()方法删除列表中元素时会影响列表中部分元素的索引。(对)
-
已知列表 x = [1, 2, 3],那么执行语句 x = 3 之后,变量x的地址不变。(错)
-
使用列表对象的remove()方法可以删除列表中首次出现的指定元素,如果列中不存在要删除的指定元素则抛出异常。(对)
-
元组是不可变的,不支持列表对象的inset()、remove()等方法,也不支持del命令删除其中的元素,但可以使用del命令删除整个元组对象。(对)
-
Python字典和集合属于无序序列。(对)
-
无法删除集合中指定位置的元素,只能删除特定值的元素。(对)
-
元组的访问速度比列表要快一些,如果定义了一系列常量值,并且主要用途仅仅是对其进行遍历二不需要进行任何修改,建议使用元组而不使用列表。(对)
-
当以指定“键”为下标给字典对象赋值时,若该“键”存在则表示修改该“键”对应的“值”,若不存在则表示为字典对象添加一个新的“键-值对”。(对)
-
假设x是含有5个元素的列表,那么切片操作x[10:]是无法执行的,会抛出异常。(错)
-
只能对列表进行切片操作,不能对元组和字符串进行切片操作。(错)
-
字符串属于Python有序序列,和列表、元组一样都支持双向索引。(对)
-
Python集合不支持使用下标访问其中的元素。(对)
-
相同内容的字符串使用不同的编码格式进行编码得到的结果并不完全相同。(对)
-
删除列表中重复元素最简单的方法是将其转换为集合后再重新转换为列表。(对)
-
对于生成器对象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是素数。(对)
-
表达式 ‘a’+1的值为’b’。(错)
-
创建只包含一个元素的元组时,必须在元素后面加一个逗号,例如(3,)。(对)
-
已知x为非空列表,那么执行语句x[0] = 3之后,列表对象x的内存地址不变。(对)
-
列表可以作为集合的元素。(错)
-
集合可以作为列表的元素。(对)
-
元组可以作为集合的元素。(对)
-
集合可以作为元组的元素。(对)
-
字典可以作为集合的元素。(错)
-
集合可以作为字典的键。(错)
-
集合可以作为字典的值。(对)
-
可以使用del删除集合中的部分元素。(错)
-
列表对象的pop()方法默认删除并返回最后一个元素,如果列表已空则抛出异常。(对)
-
表达式 {1, 2} * 2 的值为 {1, 2, 1, 2}。(错)
-
假设random模块已导入,那么表达式 random.sample(range(10), 7) 的作用是生成7个不重复的整数。(对)
-
使用random模块的函数randint(1, 100)获取随机数时,有可能会得到100。(对)
-
已知x = (1, 2, 3, 4),那么执行x[0] = 5之后,x的值为(5, 2, 3, 4)。(错)
-
成员测试运算符in作用于集合时比作用于列表快得多。(对)
-
内置函数len()返回指定序列的元素个数,适用于列表、元组、字符串、字典、集合以及range、zip等迭代对象。(对)
-
在Python中,变量不直接存储值,而是存储值的引用,也就是值在内存中的地址。(对)
-
表达式(i**2 for i in range(100))的结果是个元组。(错)
-
Python内置字典是无序的,如果需要一个可以记住元素插入顺序的字典,可以使用collections.OrderedDict。(对)
-
已知列表x = [1, 2, 3, 4],那么表达式x.find(5)的值应为-1。(错)
-
列表对象的排序方法sort()只能按元素从小到大排列,不支持别的排序方式。(错)
-
已知x是一个列表,那么x = x[3:] + x[:3]可以实现把列表x中的所有元素循环左移3位。(对)
第3章 选择结构与循环结构
-
如果仅仅是用于控制循环次数,那么使用for i in range(20)和for i in range(20, 40)的作用是等价的。(对)
-
在循环中continue语句的作用是跳出当前循环。(错)
-
在编写多层循环时,为了提高运行效率,应尽量减少内循环中不必要的计算。(对)
-
带有else子句的循环如果因为执行了break语句而退出的话,则会执行else子句中的代码。(错)
-
对于带有else子句的循环语句,如果是因为循环条件表达式不成立而自然结束循环,则执行else子句中的代码。(对)
-
在条件表达式中不允许使用赋值运算符“=”,会提示语法错误。(对)
第4章 字符串与正则表达式
-
在UTF-8编码中一个汉字需要占用3个字节。(对)
-
在GBK和CP936编码中一个汉字需要2个字节。(对)
-
在Python中,任意长的字符串都遵守驻留机制。(错)
-
Python运算符%不仅可以用来求余数,还可以用来格式化字符串。(对)
-
Python字符串方法replace()对字符串进行原地修改。(错)
-
如果需要连接大量字符串成为一个字符串,那么使用字符串对象的join()方法比运算符+具有更高的效率。(对)
-
已知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。(对)
第5章 函数设计与应用
-
调用函数时,在实参前面加一个型号*表示序列解包。(对)
-
在Python 3.x中语句 print(*[1,2,3]) 不能正确执行。(错)
-
函数是代码复用的一种方式。(对)
-
定义函数时,即使该函数不需要接收任何参数,也必须保留一对空的圆括号来表示这是一个函数。(对)
-
编写函数时,一般建议先对参数进行合法性检查,然后再编写正常的功能代码。(对)
-
一个函数如果带有默认值参数,那么必须所有参数都设置默认值。(错)
-
定义Python函数时必须指定函数返回值类型。(错)
-
定义Python函数时,如果函数中没有return语句,则默认返回空值None。(对)
-
如果在函数中有语句 return 3,那么该函数一定会返回整数3。(错)
-
不同作用域中的同名变量之间互相不影响,也就是说,在不同的作用域内可以定义同名的变量。(对)
-
全局变量会增加不同函数之间的隐式耦合度,从而降低代码可读性,因此应尽量避免过多使用全局变量。(对)
-
函数内部定义的局部变量当函数调用结束后被自动删除。(对)
-
在函数内部,既可以使用global来声明使用外部全局变量,也可以使用global直接定义全局变量。(对)
-
在函数内部直接修改形参的值并不影响外部实参的值。(对)
-
在函数内部没有任何方法可以影响实参的值。(错)
-
调用带有默认值参数的函数时,不能为默认值参数传递任何值,必须使用函数定义时设置的默认值。(错)
-
在同一个作用域内,局部变量会隐藏同名的全局变量。(对)
-
形参可以看做是函数内部的局部变量,函数运行结束之后形参就不可访问了。(对)
-
假设已导入random标准库,那么表达式 max([random.randint(1, 10) for i in range(10)]) 的值一定是10。(错)
-
Python标准库random的方法randint(m,n)用来生成一个[m,n]区间上的随机整数。(对)
-
在函数内部没有任何声明的情况下直接为某个变量赋值,这个变量一定是函数内部的局部变量。(对)
-
已知 x = 3,那么执行语句 x+=6 之后,x的内存地址不变。(错)
-
在定义函数时,某个参数名字前面带有一个*符号表示可变长度参数,可以接收任意多个普通实参并存放于一个元组之中。(对)
-
在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个关键参数并将其存放于一个字典之中。(对)
-
定义函数时,带有默认值的参数必须出现在参数列表的最右端,任何一个带有默认值的参数右边不允许出现没有默认值的参数。(对)
-
在调用函数时,可以通过关键参数的形式进行传值,从而避免必须记住函数形参顺序的麻烦。(对)
-
语句pass仅起到占位符的作用,并不会做任何操作。(对)
-
无法使用lambda表达式定义有名字的函数。(错)
第6章 面向对象程序设计
-
在Python中定义类时,如果某个成员名称前有2个下划线则表示是私有成员。(对)
-
在类定义的外部没有任何办法可以访问对象的私有成员。(错)
-
Python中一切内容都可以称为对象。(对)
-
栈和队列的都具有先入后出的特点。(错)
-
在一个软件的设计与开发中,所有类名、函数名、变量名都应该遵循统一的风格和规范。(对)
-
定义类时所有实例方法的第一个参数用来表示对象本身,在类的外部通过对象名来调用实例方法时不需要为该参数传值。(对)
-
在面向对象程序设计中,函数和方法是完全一样的,都必须为所有参数进行传值。(错)
-
Python中没有严格意义上的私有成员。(对)
-
在Python中定义类时,运算符重载是通过重写特殊方法实现的。例如,在类中实现了__mul__()方法即可支持该类对象的**运算符。(错)
-
在IDLE交互模式下,一个下划线“_”表示解释器中最后一次显示的内容或最后一次语句正确执行的输出结果。(对)
-
对于Python类中的私有成员,可以通过“对象名._类名__私有成员名”的方式来访问。(对)
-
运算符“-”可以用于集合的差集运算。(对)
-
如果定义类时没有编写析构函数,Python将提供一个默认的析构函数进行必要的资源清理工作。(对)
-
已知seq为长度大于10的列表,并且已导入random模块,那么[random.choice(seq) for i in range(10)]和random.sample(seq,10)等价。(错)
-
在派生类中可以通过“基类名.方法名()”的方式来调用基类中的方法。(对)
-
Python支持多继承,如果父类中有相同的方法名,而在子类中调用时没有指定父类名,则Python解释器将从左向右按顺序进行搜索。(对)
-
在Python中定义类时实例方法的第一个参数名称必须是self。(错)
-
在Python中定义类时实例方法的第一个参数名称不管是什么,都表示对象自身。(对)
-
定义类时如果实现了__contains__()方法,该类对象即可支持成员测试运算in。(对)
-
定义类时如果实现了__len__()方法,该类对象即可支持内置函数len()。(对)
-
定义类时实现了__eq__()方法,该类对象即可支持运算符==。(对)
-
定义类时实现了__pow__()方法,该类对象即可支持运算符**。(对)
-
Python类的构造函数是__init__()。(对)
-
定义类时,在一个方法前面使用@classmethod进行修饰,则该方法属于类方法。(对)
-
定义类时,在一个方法前面使用@staticmethod进行休息,则该方法属于静态方法。(对)
-
通过对象不能调用类方法和静态方法。(错)
-
在Python中可以为自定义类的对象动态增加新成员。(对)
-
Python类不支持多继承。(错)
-
属性可以像数据成员一样进行访问,但赋值时具有方法的优点,可以对新值进行检查。(对)
-
只可以动态为对象增加数据成员,而不能为对象动态增加成员方法。(错)
-
任何包含__call__()方法的类的对象都是可调用的。(对)
-
在Python中函数和类都属于可调用对象。(对)
-
函数和对象方法是一样的,内部实现和外部调用都没有任何区别。(错)
-
在设计派生类时,基类的私有成员默认是不会继承的。(对)
-
如果在设计一个类时实现类__len__()方法,那么该类的对象会自动支持Python内置函数len()。(对)
第7章 文件操作
-
使用内置函数open()且以”w”模式打开的文件,文件指针默认指向文件尾。(错)
-
使用内置函数open()打开文件时,只要文件路径正确就总是可以正确打开的。(错)
-
使用print()函数无法将信息写入文件。(错)
-
对文件进行读写操作之后必须显式关闭文件以确保所有内容都得到保存。(对)
-
Python标准库os中的方法startfile()可以启动任何已关联应用程序的文件,并自动调用关联的程序。(对)
-
Python标准库os中的方法startfile()可以用来打开外部程序或文件,系统会自动关联相应的程序来打开或执行指定的文件。(对)
-
假设os模块已导入,那么列表推导式 [filename for filename in os.listdir(‘C:\Windows’) if filename.endswith(‘.exe’)] 的作用是列出C:\Windows文件夹中所有扩展名为.exe的文件。(对)
-
二进制文件不能使用记事本程序打开。(错)
-
使用普通文本编辑器软件也可以正常查看二进制文件的内容。(错)
-
二进制文件也可以使用记事本或其他文本编辑器打开,但是一般来说无法正常查看其中的内容。(对)
-
Python标准库os中的方法isfile()可以用来测试给定的路径是否为文件。(对)
-
Python标准库os中的方法exists()可以用来测试给定路径的文件是否存在。(对)
-
Python标准库os中的方法isdir()可以用来测试给定的路径是否为文件夹。(对)
-
Python标准库os中的方法listdir()返回包含指定路径中所有文件和文件夹名称的列表。(对)
-
Python扩展库xlwt支持对Excel 2003或更低版本的Excel文件进行写操作。(对)
-
Python扩展库xlrd支持对Excel 2003或更低版本的Excel文件进行读操作。(对)
-
标准库os的rename()方法可以实现文件移动操作。(对)
-
标准库os的listdir()方法默认只能列出指定文件夹中当前层级的文件和文件夹列表,而不能列出其子文件夹中的文件。(对)
-
文件对象的tell()方法用来返回文件指针的当前位置。(对)
-
以写模式打开的文件无法进读操作。(对)
-
以读模式打开文件时,文件指针指向文件开始处。(对)
-
以追加模式打开文件时,文件指针指向文件尾。(对)
-
二进制文件也可以使用记事本程序打开,只是无法正确阅读和理解其中的内容。(对)
-
文本文件是可以迭代的,可以使用for line in fp类似的语句遍历文件对象fp中的每一行。(对)
-
Python的主程序文件python.exe属于二进制文件。(对)
-
对字符串信息进行编码以后,必须使用同样的或者兼容的编码格式进行解码才能还原本来的信息。(对)
-
已知当前文件夹中有一个文件readme.txt具有只读属性,假设标准库os已正确导入,那么可以通过语句os.chmod(‘readme.txt’, 0o777)来删除该文件的只读属性。(对)
-
Python标准库os的函数remove()不能删除具有只读属性的文件。(对)
第8章 异常处理结构与程序调试、测试
-
在try…except…else结构中,如果try块的语句引发了异常则会执行else块中的代码。(错)
-
异常处理结构中的finally块中代码仍然有可能出错从而再次引发异常。(对)
-
程序中异常处理结构在大多数情况下是没必要的。(错)
-
带有else子句的异常处理结构,如果不发生异常则执行else子句中的代码。(对)
-
异常处理结构也不是万能的,处理异常的代码也有引发异常的可能。(对)
-
在异常处理结构中,不论是否发生异常,finally子句中的代码总是会执行的。(对)
-
由于异常处理结构try…except…finally…中finally里的语句块总是被执行的,所以把关闭文件的代码放到finally块里肯定是万无一失,一定能保证文件被正确关闭并且不会引发任何异常。(错)
简答题
-
简单解释Python基于值的自动内存管理方式?(Python采用的是基于值得内存管理方式,在Python中可以为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一个内存地址;Python具有自动内存管理功能,会自动跟踪内存中所有的值,对于没有任何变量指向的值,Python自动将其删除。)
-
写出Python运算符&的两种功能?(1)数字位运算;2)集合交集运算。)
-
在Python中导入模块中的对象有哪几种方式?(1)import 模块名 [as 别名];2)from 模块名 import 对象名[ as 别名];3)from math import *)
-
为什么应尽量从列表的尾部进行元素的增加与删除操作?(当列表增加或删除元素时,列表对象自动进行内存扩展或收缩,从而保证元素之间没有缝隙,但这涉及到列表元素的移动,效率较低,应尽量从列表尾部进行元素的增加与删除操作以提高处理速度。)
-
分析逻辑运算符“or”的短路求值特性?(假设有表达式“表达式1 or 表达式2”,如果表达式1的值等价于True,那么无论表达式2的值是什么,整个表达式的值总是等价于True。因此,不需要再计算表达式2的值。)
-
简单解释Python中短字符串驻留机制?(对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享改副本。)
-
异常和错误有什么区别?(异常是指因为程序执行过程中出错而在正常控制流以外采取的行为。严格来说,语法错误和逻辑错误不属于异常,但有些语法错误往往会导致异常,例如由于大小写拼写错误而访问不存在的对象,或者试图访问不存在的文件,等等。)
-
阅读下面的代码,并分析假设文件“D:\test.txt”不存在的情况下两段代码可能发生的问题。
代码1:
1
2
3
4
5
try:
fp = open(r'd:\test.txt')
print('Hello world!', file=fp)
finally:
fp.close()
代码2:
1
2
3
4
5
try:
fp = open(r'd:\test.txt', 'a+')
print('Hello world!', file=fp)
finally:
fp.close()
答:假设文件“D:\test.txt”不存在,那么第一段代码会抛出异常,提示fp没有定义;第二段代码执行正常。原因是第二段代码使用内置函数open()打开指定文件时如果不存在则会创建该文件,从而不会抛出异常。
编程题
- 编写程序,在D盘根目录下创建一个文本文件test.txt,并向其中写入字符串hello world。
1
2
3
fp = open("D:\\test.txt","a+")
print("hello world",file=fp)
fp.close()
- 写出下面代码的优化版本,提高运行效率。
1
2
3
4
x = list(range(500))
for item in x:
t = 5**5
print(item+t)
答:
1
2
3
4
x = list(range(500))
t = 5**5
for item in x:
print(item+t)
- 编写程序,输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
答:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
s = input('input a string:')
letter = 0 # 统计字母
space = 0 # 统计空格
digit = 0 # 统计数字
other = 0 # 统计其他字符
for c in s:
if c.isalpha():
letter += 1
elif c.isspace():
space += 1
elif c.isdigit():
digit += 1
else:
other += 1
print("字母:", letter, "空格:", space, "数字:", digit, "其他字符:", other)
- 写出下面代码的执行结果。
1
2
3
4
5
6
def Join(List, sep=None):
return (sep or ',').join(List)
print(Join(['a', 'b', 'c']))
print(Join(['a', 'b', 'c'], ':'))
答:
1
2
a,b,c
a:b:c
- 写出下面代码的运行结果。
1
2
3
4
5
6
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))
答:
1
2
3
13
16
15
- 写出下面代码的运行结果。
1
2
3
4
5
6
def Sum(*p):
return sum(p)
print(Sum(3, 5, 8))
print(Sum(8))
print(Sum(8, 2, 10))
答:
1
2
3
4
5
6
16
8
20
Sum(3, 5, 8):调用 Sum 函数,传入三个参数 3、5 和 8。sum(p) 计算这些参数的总和,结果为 16。
Sum(8):调用 Sum 函数,传入一个参数 8。sum(p) 计算该参数的总和,结果为 8。
Sum(8, 2, 10):调用 Sum 函数,传入三个参数 8、2 和 10。sum(p) 计算这些参数的总和,结果为 20。
- 编写函数,判断一个数字是否为素数,是则返回字符串YES,否则返回字符串NO。
答:
1
2
3
4
5
6
7
8
import math
def IsPrime(v):
n = int(math.sqrt(v)) + 1
for i in range(2, n):
if v % i == 0:
return 'No'
return 'Yes'
- 编写程序,某市出租车收费标准如下:(1)3公里内(含3公里),收费8元;(2)超过3公里但未超过6公里部分,按1.5元/公里收费;(3)超过6公里部分,按2.25元/公里收费。根据以上标准,设计程序为输入出租车行驶的公里数,请计算顾客需付费多少元?
答:
1
2
3
4
5
6
7
8
9
10
s = float(input("s="))
if s <= 3:
p = 8
elif s <= 6:
p = 1.5 * (s - 3) + 8
else:
p = 2.25 * (s - 6) + 1.5 * 3 + 8
print(p)
- 编写程序,实现分段函数计算,如下表所示。
x | y |
---|---|
x<0 | 0 |
0<=x<5 | x |
5<=x<10 | 3x-5 |
10<=x<20 | 0.5x-2 |
20<=x | 0 |
答:
1
2
3
4
5
6
7
8
9
10
11
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)
- 假设有Python程序文件demo.py,代码如下:
1
2
3
4
5
6
7
def main():
if __name__ == '__main__':
print(1)
else:
print(2)
main()
将该程序文件直接运行时输出结果为_________,作为模块导入时得到结果___________。(1、2)
- 下面程序的执行结果是__________________。(1)
1
2
3
4
5
s = 0
for i in range(1, 101):
s += i
else:
print(1)
- 下面程序的执行结果是______________。(1275)
1
2
3
4
5
6
7
8
s = 0
for i in range(1, 101):
s += i
if i == 50:
print(s)
break
else:
print(1)
1.阅读下列程序,写出运行结果:
end=”” 表示输出当前行的所有内容后输出一个空格,且不换行
1
2
3
4
5
x = int(input("请输入一个整数:"))
for i in range(1, x):
if x % i == 0:
print(i, end="")
程序运行后,输入:8,运行输出结果是:124
2.阅读下列程序,写出运行结果:
1
2
3
4
5
6
7
8
9
10
def fib(m):
n1 = 1
n2 = 1
for i in range(3, m + 1):
t = n1 + n2
n1 = n2
n2 = t
return t
print(fib(5))
运行结果:5
3.阅读下列程序,写出运行结果:
1
2
3
4
5
6
7
8
sum = 0
data = [34, 5, 9, 41, 78, 2]
for i in data:
if i % 2 == 0:
sum = sum + i
print(sum)
运行结果:114
4.阅读下列程序,写出运行结果:
1
2
3
4
5
6
7
8
9
a, b = 1, 1
n = int(input("请输入一个大于等于3的正整数n:"))
for i in range(n - 2):
c = a + b
a = b
b = c
print(c)
运行结果:8
5.阅读下列程序,写出运行结果:
1
2
3
4
5
6
7
8
9
10
i = 0
sum = 0
t = 1
while sum < 10:
i = i + 1
t = t * i
sum = sum + t
print(sum)
运行结果:33
6.阅读下列程序,写出运行结果:
1
2
3
4
5
6
7
8
n = 36
s = 0
for i in range(2, n):
if n % i == 0:
s = s + i
print(s)
运行结果:54
7.阅读下列程序,写出运行结果:
1
2
3
4
5
6
s = 1
for i in range(1, 10, 3):
s = s * i
print(s)
运行结果:28
8.阅读下列程序,写出运行结果:
1
2
3
4
5
6
7
8
9
10
11
12
m = 9
n = 6
c = m - n
while c != n:
m = n
n = c
if m < n:
m, n = n, m
c = m - n
print(c)
运行结果:3
9.阅读下列程序,写出运行结果:
1
2
3
4
5
6
7
8
9
10
11
12
m = int(input("请输入一个正整数:"))
x = m
y = m
for i in range(9):
n = int(input("请输入一个正整数:"))
if n > x:
x = n
if n < y:
y = n
print(x, y)
程序运行后,依次输入:12 35 9 11 23 88 13 19 29 55
运行结果:88 9
10.阅读下列程序,写出运行结果。
1
2
3
4
5
6
x = int(input("请输入一个正整数"))
y = 0
while x != 0:
y = y * 10 + x % 10
x = x // 10
print(y)
程序运行后输入:2021
结果:1202
- 阅读下面的代码,分析其执行结果。
1
2
3
4
5
def demo(*p):
return sum(p)
print(demo(1, 2, 3, 4, 5))
print(demo(1, 2, 3))
答:输出结果为
1
2
15
6
- 阅读下面的代码,分析其执行结果。
1
2
3
4
5
def demo(a, b, c=3, d=50):
return sum((a, b, c, d))
print(demo(2, 2, 3, 5))
print(demo(2, 2, d=3))
答:输出结果为
1
2
3
12
10
- 下面的代码输出结果为_____________。(3)
1
2
3
4
5
6
def demo():
x = 5
x = 3
demo()
print(x)
- 有n个乒乓球运动员打淘汰赛,编写函数计算至少需要多少场比赛才能决出冠军,不允许直接使用n-1。
1
2
3
4
5
6
7
def demo(n):
if n == 1:
return 0
if n == 2:
return 1
m, c = divmod(n, 2)
return m + demo(c + m)
- 使用循环和列表推导式两种方法求解百钱买百鸡问题。假设大鸡5元一只,中鸡3元一只,小鸡1元三只,现有100元钱想买100只鸡,有多少种买法?
1
2
3
4
5
6
7
8
9
10
# 循环
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)
# 推导式
print([(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])