vlambda博客
学习文章列表

花了一个月终于整理出来了,800道Python习题,试试你能做对多少道吧!

最近沉寂的太久了,只为了给大家准备这一套试题,这大概是全网最全面的了,各位学这么久Python,检验学习成果的时间到了!!

话不多说我们直接开始把!

花了一个月终于整理出来了,800道Python习题,试试你能做对多少道吧!

一、填空题

答案都在这个群里了 279199867,我给大家准备了2022最新的Python学习资料,都可以免费领取 。


001、Python安装扩展库常用的工具是__________和conda,其中后者需要安装Python集成开发环境Anaconda3之后才可以使用,而前者是Python官方推荐和标配的;

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

003、Python源代码程序伪编译后的文件扩展名为__________;

004、使用pip工具在线安装Excel文件操作扩展库openpyxl的完整命令是__________;

005、使用pip工具在线升级科学计算扩展库numpy的完整命令是__________;

006、使用pip工具把本机已安装的Python扩展库及版本信息输出到文本文件requirements.txt中的完整命令是__________;

007、使用pip工具查看当前已安装的Python扩展库(不含版本号)的完整命令是__________;

008、表达式int(‘11111’, 2)的值为__________;

009、表达式chr(ord(‘D’)+2)的值为__________;

010、运算符%__________(可以/不可以)对浮点数进行求余数操作;

011、一个数字5__________(是/不是)合法的Python表达式;

012、在Python中关键字__________表示空类型;

013、列表、元组、字符串是Python的__________(有序、无序?)序列;

014、查看变量类型的Python内置函数是__________;

016、以3为实部4为虚部,Python复数的表达形式为__________或__________;

017、Python运算符中用来计算整商的是__________;

018、Python运算符中用来计算集合并集的是__________;

019、Python运算符中用来计算集合差集的是__________;

020、 Python运算符中用来计算集合交集的是__________;

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

022、__________命令既可以删除列表中的一个元素,也可以删除整个列表或其他任意类型的Python对象;

023、表达式int(‘123’, 16)的值为__________;

024、表达式int(‘123’, 8)的值为__________;

025、表达式int(‘123’)的值为__________;

026、表达式int(‘101’,2)的值为__________;

027、表达式abs(-3)的值为__________;

028、Python 3.x语句print(1, 2, 3, sep=‘:’)的输出结果为__________;

029、Python 3.x语句print(1, 2, 3, sep=‘,’)的输出结果为__________;

030、表达式int(4**0.5)的值为__________;

031、表达式8 ** (1/3)的值为__________;

032、Python内置函数__________可以返回列表、元组、字典、集合、字符串以及range对象中元素个数;

033、Python内置函数__________用来返回序列中的最大元素;

034、Python内置函数__________用来返回序列中的最小元素;

035、Python内置函数__________用来返回数值型序列中所有元素之和;

036、已知x = 3,那么执行语句x += 6之后,x的值为__________;

037、表达式13 / 4的值为__________;

038、表达式13 // 4的值为__________;

039、表达式-13 // 4的值为__________;

040、表达式3 ** 2的值为__________;

041、表达式chr(ord(‘a’)-32) 的值为__________;

042、表达式abs(3+4j) 的值为__________;

043、表达式16 ** 0.5的值为__________;

044、表达式type({3})的值为__________;

045、表达式type({3:3})的值为__________;

046、表达式isinstance(‘Hello world’, str)的值为__________;

047、表达式isinstance(‘abc’, int)的值为__________;

048、表达式isinstance(4j, (int, float, complex))的值为__________;

049、表达式isinstance(‘4’, (int, float, complex))的值为__________;

050、表达式type(3) in (int, float, complex)的值为__________;

051、表达式type(‘3’) in (int, float, complex)的值为__________;

052、表达式type(3) == int的值为__________;

053、Python 3.x的range()函数返回一个_____________;

054、表达式“[3] in [1, 2, 3, 4]”的值为___________;

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

056、列表对象的___________方法删除首次出现的指定元素,如果列表中不存在要删除的元素,则抛出异常;

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

058、在Python中,字典和集合都是用一对____________作为界定符,字典的每个元素有两部分组成,即________和__________,其中________不允许重复;

059、使用字典对象的__________方法可以返回字典的“键-值对”,使用字典对象的_____________方法可以返回字典的“键”,使用字典对象的__________方法可以返回字典的“值”;

060、假设有列表a = [‘name’, ‘age’, ‘sex’]和b = [‘Dong’, 38, ‘Male’],请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为_____________________;

061、假设有一个列表a,现要求从列表a中每3个元素取1个,并且将取到的元素组成新的列表b,可以使用语句____________;

062、使用列表推导式生成包含10个数字5的列表,语句可以写为__________________;

063、___________(可以、不可以)使用del命令来删除元组中的部分元素;

064、表达式[1, 2, 3]*3的值为______________________;

065、表达式list(map(str, [1, 2, 3]))的值为__________;

066、语句x = 3==3, 5执行结束后,变量x的值为__________;

067、已知x = 3,并且id(x)的返回值为496103280,那么执行语句x += 6之后,表达式id(x) == 496103280的值为__________;

068、已知x = 3,那么执行语句x *= 6之后,x的值为__________;

069、表达式3 in [1, 2, 3, 4]的值为__________;

070、使用列表与整数的乘法生成包含10个数字5的列表,可以写为__________;

071、任意长度的非空列表、元组和字符串中最后一个元素的下标为__________;

072、表达式list(range(1, 10, 3))的值为__________;

073、表达式list(range(10, 1, -3))的值为__________;

074、表达式list(range(5))的值为________________;

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

076、切片操作list(range(6))[::2]执行结果为__________;

077、使用切片操作在列表对象x的开始处增加一个元素3的代码为__________;

078、语句sorted([1, 2, 3], reverse=True) == reversed([1, 2, 3])执行结果为__________;

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

080、表达式sorted([111, 2, 33], key=lambda x: -len(str(x)))的值为__________;

081、表达式max([111, 22, 3], key=str)的值为__________;

082、语句x = (3,)执行后x的值为__________;

083、语句x = (3)执行后x的值为__________;

084、已知x=3和y=5,执行语句 x, y = y, x 后x的值是__________;

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

086、可以使用内置函数__________查看包含当前作用域内所有局部变量和值的字典;

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

088、字典对象的_________方法可以获取指定“键”对应的“值”,并且可以在指定“键”不存在的时候返回指定值,如果不指定则返回 None;

089、表达式{1:‘a’ , 2:'b, 3:'c"}.get(4, ‘d’)的值为_________;

090、已知x={1:2},那么执行语句x[2] =3之后,x的值为_________;

091、表达式 {1,2,3,4}- {3,4,5,6} 的值为_________;

092、表达式 set([1,1,2,3])的值为_________;

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

094、已知x=[3, 5,7],那么表达式x[10:]的值为_________;

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

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

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

098、已知x=[1,11, 111],那么执行语句x.sort(key=lambda x: len(str(x)),reverse=True)之后,x的值为_________;

099、表达式 list(zip([1,2], [3,4]))的值为_________;

100、已知x =[1,2,3,2,3],执行语句x.pop()之后,x的值为_________;

101、已知x =[1,2,3,2,3],执行语句x.pop(0)之后,x的值为_________;

102、表达式 list(map(list, zip(*[[1,2,3], [4,5,6]])))的值为_________;

103、表达式[x for x in [1,2,3,4,5] if x<3]的值为_________;

104、表达式[x for x in[1,2,3,4,5] if x%2==1]的值为_________;

105、表达式[index for index,value in enumerate([3,5,7,3,7]) if value == max([3,5,7,3,7])]的值为_________;

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

107、已知列表x=[1, 2],那么表达式list(enumerate(x))的值为_________;

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

109、已知 vec =[[1,2],[3.4]],则表达式[[row[i] for row in vec] for i in range(len(vec[0]))]的值为_________;

110、已知 x= list(range(10)),则表达式 x[-4:] 的值为_________;

111、已知 x= [3,5,7],那么执行语句 x[1:]=[2] 之后,x的值为_________;

112、已知 x= [3,5,7],那么执行语句 x[:3]=[2] 之后,x的值为_________;

113、已知 x 为非空列表,那么执行语句 y=x[:] 之后,id(x[0])== id(y[0])的值为_________;

114、已知 x=[1,2,3,2,3],执行语句x.remove(2)之后,x的值为_________;

115、表达式 len([ i+5 for i in range(10)])的值为_________;

116、表达式 len(range(1,10))的值为_________;

117、表达式 range(10)[-1]的值为_________;

118、表达式 range(10, 20)[4]的值为_________;

119、表达式 round(3.4)的值为_________;

120、表达式 round(3.7)的值为_________;

121、已知 x=(3),那么表达式x*3的值为_________;

122、已知 x= (3,),那么表达式×*3的值为_________;

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

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

125、已知列表 x=[1,2,3,4],那么执行语句 delx[1]之后x的值为_________;

126、表达式[1,2]*2的值为_________;

127、已知列表x=[1,2,3],那么执行语句x.insert(1,4)之后,x的值为_________;

128、已知列表 x=[1,2,3],那么执行语句x.insert(0,4)之后,x的值为_____________;

129、已知 x= [[1]]*3,那么执行语句 x[0][0]=5 之后,变量x的值为_____________;

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

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

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

133、已知 x={1:2,2:3},那么表达式x.get(3,4)的值为_____________;

134、已知 x={1:2,2:3},那么表达式x.get(2,4)的值为_____________;

135、表达式 {1,2,3} I {3,4, 5} 的值为_____________;

136、表达式{1,2,3}&{3,4, 5}的值为_____________;

137、表达式{1,2, 3}-{3,4,5}的值为_____________;

138、表达式{1,2,3}<{3, 4,5}的值为_____________;

139、表达式{1,2,3}<{1, 2,4}的值为_____________;

140、表达式[1,2,3].count(4)的值为_____________;

141、Python标准库random中_____________函数的作用是从序列中随机选择1个元素;

142、Python标准库random 中 sample(seq, k)函数从序列中选择_____________(重复、不重复?)的k 个元素;

143、random模块中_____________函数的作用是将列表中的元素随机乱序;

144、执行代码x, y,z = sorted([1,3,2]之后,变量 y 的值为_____________;

145、表达式(1,2,3)+(4, 5)的值为_____________;

146、表达式 dict(zip([1, 2],[3, 4]))的值为_____________;

147、语句x,y,z=[1,2,3]执行后,变量y的值为_____________;

148、已知x={1,2,3},那么执行语句x.add(3)之后,x的值为_____________;

149、已知x={1:1},那么执行语句x[2]=4之后,len(x)的值为_____________;

150、已知x={1:1, 2:2},那么执行语句x[2]=4之后,len(x)的值为_____________;

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

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

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

154、已知列表×=[1,2],执行语句y=x后,表达式 id(x) == id(y)的值为_____________;

155、已知列表×=[1,2],执行语句y=x后,表达式xisy的值为_____________;

156、已知列表x=[1, 2],执行语句y=x[:]后,表达式 x is not y的值为_____________;

157、表达式 [i for i in range(10) if i>8]的值为_____________;

158、已知 x=[[1,2,3],[4,5,6]],那么表达式[[row[i] for row in x] for i in range(len(x[0]))]的值为_____________;

159、执行语句 x, y,z = map(str,range(3))之后,变量y的值为_____________;

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

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

162、执行语句 x,y,z = '123’之后,y的值为_____________

163、表达式 print(0b10101) 的值为_____________

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

165、已知 x = range(1,4) 和 y = range(4,7),那么表达式 sum([i*j for i,j in zip(x,y)])的值为_____________

166、表达式 [5 for i in range(3)] 的值为_____________

167、表达式 {1,2,3}=={1,3,2}的值为_____________;

168、表达式[1,2,3] == [1,3,2]的值为___________;

169、已知 x= [1,2,1],那么表达式id(x[0]) == id(x[2])的值为___________;

170、表达式 3 not in [1,2,3]的值为___________;

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

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

173、已知x= [1,2,3,4,5],那么执行语句delx[1:3]之后,x的值为___________;

174、已知x= [[1,2,3],[4,5,6]],那么表达式sum([i*jfor i,j in zip(*x)])的值为___________;

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

176、已知列表 x=[1.0,2.0,3.0],那么表达式sum(x)/len(x)的值为___________;

177、已知 x={1:2,2:3,3:4},那么表达式sum(x)的值为___________;

178、已知 x={1:2,2:3,3:4},那么表达式sum(x.values())的值为___________;

179、已知 x= [3,2,3,3,4],那么表达式[index for index, value in enumerate(x) if value==3]的值为___________;

180、表达式1234%1000//100的值为___________;

181、表达式3//5的值为___________;

182、表达式[1,2]+[3]的值为___________;

183、表达式(1,)+(2,)的值为___________;

184、表达式(1)+(2)的值为___________;

185、已知 x,y = map(int, [‘1’, ‘2’]),那么表达式x+y的值为___________;

186、已知 x, y = map(str, range(1,3)),那么表达式x+y的值为___________;

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

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

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

190、已知x为非空列表,那么表达式x.reverse() == list(reversed(x))的值为___________;

191、已知x为非空列表,那么表达式x.sort() == sorted(x)的值为___________;

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

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

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

195、已知列表x=[1,3,2],那么表达式[value for index, value in enumerate(x) if index==-2]的值为___________;

196、已知列表x=[1,3,2],那么执行语句a, b, c = sorted(x)之后,b的值为___________;

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

198、表达式 set([1,2,3])=={1,2,3}的值为_________;

199、表达式 set([1,2,2,3])=={1,2,3}的值为_________;

200、表达式 ‘%c’%65 == str(65)的值为_________;

201、表达式 ‘%s’%65 == str(65)的值为_________;

202、表达式 chr(ord(‘b’)^32)的值为_________;

203、表达式 ‘abc’ in 'abdcefg’的值为_________;

204、已知 x= ‘abcd’ 和 y = ‘abcde’,那么表达式[ i==j for i,j in zip(x,v)]的值为_________;

205、已知 x = list(range(20)),那么表达式x[-1]的值为_________;

206、已知 x=3+4j和y= 5+6j,那么表达式xt+y的值为_________;

207、表达式 int(‘11’, 2)的值为_________;

208、表达式 chr(ord(‘A’)+1)的值为_________;

209、表达式 int(str(34))== 34的值为_________;

210、表达式 list(str([3,4]))== [3,4]的值为_________;

211、表达式 15//4的值为_________;

212、表达式 sorted({‘a’:3, ‘b’:9, 'c:78})的值为_________;

213、表达式 sorted(t’a’:3, ‘b’:9, 'c:78}.values())的值为_________;

214、已知×=[3,2,4,1],那么执行语句x= x.sort()之后,x的值为_________;

215、已知x = list(range(20)),那么语句 print(x[100:200])的输出结果为_________;

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

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

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

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

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

221、表达式[1,2,3]>[1,3,2]的值为_________;

222、已知x=[1,2,3],那么表达式set(x*100)== set(x)的值为_________;

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

224、已知x=[1,2,3,4,5],那么执行语句x[1::2] = sorted(x[1::2], reverse=True)之后,x的值为_________;

225、表达式type())== dict的值为_________;

226、表达式type(l) == set的值为_________;

227、Python提供了两种基本的循环结构_______和_______ ;

228、表达式 ‘ab’ in ‘acbed’ 的值为________;

229、关键字________用于测试一个对象是否是一个可迭代对象的元素;

230、表达式 3<5>2 的值为________;

231、已知 x = {‘a’:‘b’, ‘c’:‘d’},那么表达式’a’ in x的值为________;

232、已知 x = {‘a’:‘b’, ‘c’:‘d’},那么表达式’b’ in x的值为________;

233、已知 x = (‘a’:‘b’, ‘c’:‘d’},那么表达式’b’ in x.values()的值为________;

234、表达式1<2<3的值为________;

235、表达式3 or 5的值为________;

236、表达式0 or 5的值为________;

237、表达式3 and 5的值为________;

238、表达式3 and not 5的值为________;

239、Python中用于表示逻辑与、逻辑或、逻辑非运算的关键字分别是________、、;

240、Python 3.x 语句 for i in range(3):print(i, end=‘,’)的输出结果为________;

241、Python 3.x语句print(1, 2,3, sep=';")的输出结果为________;

242、对于带有 else 子句的 for 循环和 while 循环,当循环因循环条件不成立而自然结束时________(会、不会?)执行else中的代码;

243、在循环语句中,________语句的作用是提前结束本层循环;

244、在循环语句中,________语句的作用是提前进入下一次循环;

245、表达式 5 if 5>6 else (6 if 3>2 else 5)的值为________;

246、Python关键字 elif 表示________和________两个单词的缩写;

247、表达式 3 in {1,2,3} 的值为________;

248、表达式 ‘ac’ in ‘abce’ 的值为________;

249、表达式 not 3 的值为________;

250、Python 3.x 语句 for i in range(3):print(i, end=‘,’) 的输出结果为_________;

251、Python 3.x 语句 print(1,2,3, sep=‘,’)的输出结果为_________;

252、对于带有 else 子句的 for 循环和 while 循环,当循环因循环条件不成立而自然结束时_________(会、不会?)执行else中的代码;

253、在循环语句中,_________语句的作用是提前结束本层循环;

254、在循环语句中,_________语句的作用是提前进入下一次循环;

256、表达式 5 if 5>6 else (6if 3>2 else 5) 的值为_________;

257、Python 关键字elif表示_________和_________两个单词的缩写;

258、表达式 3 in {1,2,3}的值为_________;

259、表达式 ‘ac’ in ‘abce’ 的值为_________;

260、表达式 not 3 的值为_________;

261、Python中定义函数的关键字是___________;

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

263、在函数内部可以通过关键字___________来定义全局变量,也可以用来声明使用已有的全局变量;

264、表达式 list(map(lambda x: x+5,[1, 2,3,4,5])) 的值为___________;

265、表达式 sum(range(10))的值为___________;

266、表达式 sum(range(1, 10,2))的值为___________;

267、表达式 list(filter(None, [0,1,2,3,0,0]))的值为___________;

268、表达式 list(filter(lambda x:x>2,[0,1,2,3,0,O]))的值为___________;

269、表达式 list(range(50,60,3))的值为___________;

270、表达式 list(filter(lambda x: x%62==0, range(10))) 的值为___________;

271、已知 x = [[1,3.3],[2,3,1],那么表达式 sorted(x,key=lambda item:item[0]+item[2])的值为___________;

272、已知 x = [[1,3,3],[2,3,1]],那么表达式 sorted(x,key=lambda item:(item[1], item[2]))的值为__________;

273、已知 x = [[1,3.3],[2,3,1]],那么表达式 sorted(x,key=lambda item:(item[1],-item[2]))的值为__________;

274、表达式 list(filter(lambda x: len(x)>3, [‘a’, ‘b’, ‘abcd’]))的值为__________;

275、表达式 list(filter(lambda x: x%2==1, range(10)))的值为__________;

276、表达式 list(filter(lambda x: x.isupper(). [‘a’ , ‘B’, ‘aB’]))的值为__________;

277、已知 g = lambda x, y=3, z=5:xyz,则语句print(g(1))的输出结果为__________;

278、已知 g = lambda x, y=3,z=5: xyz,则语句print(g(1,2))的输出结果为__________;

279、已知 g = lambda x, y=3,z=5:xyz,则语句print(g(1,z=2))的输出结果为__________;

280、表达式 list(map(lambda x: len(x), [‘a’, ‘bb’, ‘ccc’]))的值为__________;

281、已知 f= lambda x: x+5,那么表达式f(3)的值为__________;

282、表达式 sorted([‘abc’, ‘acd’ , ‘ade’], key=lambda x:(x[0],×[2]))的值为__________;

283、已知函数定义 def demo(x,y, op);return eval(str(x)+op+str(y)),那么表达式 demo(3,5,‘+’)的值为__________;

284、已知函数定义 def demo(x,y, op):return eval(str(x)+op+str(y)),那么表达式 demo(3,5,‘*’)的值为__________;

285、已知函数定义 def demo(x,y, op):return eval(str(x)+op+str(y)),那么表达式 demo(3,5,‘-’)的值为__________;

286、已知 g = lambda x, y=3,z=5:x+y+z,那么表达式g(2)的值为__________;

287、假设已从标准库 functools 导入 reduce() 函数,那么表达式 reduce(lambda x, y:x-y,[1,2,3]) 的值为__________;

288、假设已从标准库 functools 导入 reduce() 函数,那么表达式 reduce(lambda x, y:x+y,[1,2,3]) 的值为__________;

289、假设已从标准库 functools 导入 reduce() 函数,那么表达式 reduce(lambda x, y:x*y,[1,2,3]) 的值为__________;

290、表达式 list(filter(lambda x: x>5, range(10)))的值为__________;

291、假设已从标准库 functools导入reduce()函数,那么表达式 reduce(lambda x,ymax(xy),[1,2,3,4,4,5])的值为__________;

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

293、已知函数定义def func(**p):return ".join(sorted§),那么表达式 func(x=1, y=2, z=3)的值为__________;

294、己f= lambda x: 5,那么表达式f(3)的值为__________;

295、已知f= lambda :8,那么表达式f()的值为__________;

296、依次执行语句x= 3, def modify():x=5,和modify()之后,x的值为__________;

297、面向对象程序设计的三要素分别为__________、和;

298、简单解释Python中以下划线开头的变量名的含义;

299、与运算符**对应的特殊方法名为__________,与运算符//对应的特殊方法名为__________;

300、假设a为类A的对象且包含一个私有数据成员__value,那么在类的外部通过对象 a 直接将其私有数据成员__value 的值设置为 3 的语句可以写作_______;

301、私有成员在类的外部__________(能、不能?)直接访间;

302、Python使用__________关键字来定义类;

303、定义类时,如果某个成员以两个下划线开头但不以两个下划线结束,则表示该成员为__________(私有成员、公有成员?);

304、定义类时,__________(必须、不必须?)指定基类;

305、一般建议使用___________作为对象成员方法的第一个参数名字;

306、定义类时,如果在某个成员方法的定义之前加上修饰器@property,则表示这是一个__________;

307、在Python中,不论类的名字是什么,构造方法的名字都是__________;

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

309、表达式’abc’ in (‘abcdefg’)的值为________;

310、表达式’abc’ in [‘abcdefg’]的值为________;

311、表达式’\x41’=='A’的值为________;

312、表达式".join(list(‘hello world!’))的值为________;

313、转义字符’\n’的含义是________;

314、已知列表对象×=[‘11’,‘2’,‘3’],则表达式max(x)的值为________;

315、表达式min([‘11’,‘2’,‘3’])的值为________;

316、已知列表对象×=[‘11’, ‘2’,‘3’],则表达式max(x, key=len)的值为________;

317、已知path = r’c:\test.html’,那么表达式path[:-4]+'htm’的值为________;

318、表达式 list(str([1,2,3])==[1,2,3]的值为________;

319、表达式str([1,2,3])的值为________;

320、表达式str((1,2,3))的值为___________;

321、表达式sum(range(1, 10,2))的值为________;

322、表达式sum(range(1, 10))的值为________;

323、表达式’%c’%65的值为________;

324、表达式’%s’%65的值为________;

325、表达式’%d,%c’ % (65,65)的值为________;

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

327、表达式’{0:#d},{0:#x},{0:#o}'.format(65)的值为________;

328、表达式isinstance(‘abcdefg’,str)的值为________;

329、表达式isinstance(‘abcdefg’ ,object)的值为________;

330、表达式isinstance(3, object)的值为________;

331、表达式’abcabcabc’ .rindex(‘abc’)的值为________;

333、表达式’:'.join(‘abcdefg’.split(‘cd’))的值为________;

334、表达式’Hello world.l like Python.'.rfind(‘python’)的值为________;

335、表达式’abcabcabc’.count(‘abc’)的值为________;

336、表达式’apple.peach,banana,pear’.find(‘p’)的值为________;

337、表达式’apple.peach,banana,pear’.find(‘ppp’)的值为________;

338、表达式’abcdefg’ .split(‘d’)的值为________;

339、表达式':'.join('1,2,3,4,5'.split(;))的值为________;

340、表达式’:'.join(‘abccc\n\n\nddd’.split())的值为________;

341、已知字典x={i:str(i+3)for i in range(3)},那么表达式".join([item[1] for item in x.tems()])的值为________;

342、表达式’Hello world’.upper()的值为________;

343表达式’Hello world’ .lower()的值为________;

344、表达式’Hello world’.lower().upper()的值为________;

345、表达式’Hello world’ .swapcase().swapcase()的值为________;

346、表达式r’c:\windowsknotepad.exe’.endswith(‘.exe’)的值为________;

347、表达式r’clwindows\notepad.exe’.endswith((‘.jpg,’.exe’))的值为________;

348、表达式’C:\Windowsiinotepad.exe’.startswith(‘C:’)的值为________;

349、表达式 len('Hello world".Ijust(20))的值为________;

350、表达式len(‘abcdefg’.ljust(3))的值为_______;

351、表达式’a’+'b’的值为_______;

352、已知 x= '123’和y= ‘456’,那么表达式x+y的值为_______;

353、表达式’a’.join(‘abc’.partition(‘a’))的值为_______;

354、表达式’.join("asdssfff.split(‘sd’))的值为_______;

355、表达式".join(re.split('[sd]",‘asdssfff’))的值为_______;

356、表达式’Hello world!'[-4]的值为_______;

357、表达式’Hello world!'[-4:]的值为_______;

358、表达式"test.py’.endswith((“-py” , ".pyw’)的值为_______;

359、表达式len(“abc”.ljust(20))的值为_______;

360、表达式’abc’.ljust(5, ‘=’)的值为_______;

361、当在字符串前加上小写字母_______或大写字母_______表示原始字符串,不对其中的任何字符进行转义;

362、表达式len(‘中国’.encode(‘utf-8’))的值为_______;

363、表达式len(‘中国’.encode(‘gbk’))的值为_______;

364、表达式chr(ord(‘A’)+2)的值为_______;

365、表达式’abcab’.replace(‘a’ , ‘wy’)的值为_______;

366、已知 table = ‘.maketrans(‘abcw’, ‘xyzc’),那么表达式’Hello world’.translate(table)的值为_______;

367、表达式’hello world, hellow every one".replace(‘hello’, "hi’)的值为_______;

368、已知字符串x = ‘hello world’,那么执行语句x.replace(‘hello’, hi’)之后,x的值为_______;

369、已知x= ‘abcd’,那么表达式,'.join(x.split())的值为_______;

370、表达式’abcab’.strip(‘ab’)的值为_______;

371、表达式[str(i) for i in range(3]的值为_______;

372、表达式’abc.txt’.endswith((‘.txt’, ‘.doc’. ‘.jpg’))的值为_______;

373、代码 print(1,2,3,sep=‘:’)的执行结果为_______;

374、代码for i in range(3):print(i, end=‘,’)的执行结果为_______;

375、表达式eval(‘’‘import_(‘math’).sqrt(9)’‘’)的值为_______;

376、表达式eval(‘’‘import(‘math’).sqrt(32+42)’‘’)的值为_______;

377、表达式eval(‘3+5’)的值为_______;

378、表达式evalK’[1, 2,3]')的值为_______;

379、假设math标准库已导入,那么表达式eval(‘math.sqrt(4)’)的值为_______;

380、已知x为非空列表,那么表达式random.choice(x) in x的值为_______;

381、表达式’abc10’.isalnum()的值为_______;

382、表达式’abc10’.isalpha()的值为_______;

383、表达式’abc10’.isdigit()的值为_______;

384、表达式’C:\lwindowslnotepad.exe’.endswith(‘.exe’)的值为_______;

385、表达式’%s '%[1,2,3]的值为_______;

386、表达式’aaasdf’.Ilstrip(‘as’)的值为_______;

387、表达式’aaasdf’.Istrip(‘af’)的值为_______;

388、表达式’aaasdf’.strip(‘af’)的值为_______;

389、表达式’aaasdf’.rstrip(‘af’)的值为_______;

390、表达式len(‘SDIBT’)的值为_______;

391、表达式’Hello world!'.count(‘l’)的值为_______;

392、已知× = ‘abcdefg’,则表达式x[3:]+x[:3]的值为_______;

393、字符串编码格式UTF8使用___个字节表示一个汉字;

394、字符串编码格式GBK使用_____个字节表示一个汉字;

395、已知字符串编码格式utf8使用3个字节表示一个汉字1个字节表示英语字母,那么表达式len(‘abc你好’)的值为_______;

396、已知字符串编码格式utf8使用3个字节表示一个汉字、1个字节表示英语字母,那么表达式len(‘abc你好’ .encode())的值为_______;

397、已知字符串编码格式gbk,使用2个字节表示一个汉字、1个字节表示英语字母,那么表达式len(‘abc 你好’.encode(‘gbk’))的值为_______;

398、已知ord(‘A’)的值为65并且 hex(65)的值为’0x41’,那么表达式’\x41b’的值为_______;

399、已知 formatter = 'good {0}.format,那么表达式list(map(formatter, [‘morning’]))的值为_______;

400、已知x = ‘hello world.’,那么表达式x.find(‘x’)和x.rfind(‘x’)的值都为_______;

401、表达式’:'.join(‘hello world.’.split()的值为_______;

402、表达式’:'.join(‘a bc d’.split(maxsplit=2))的值为_______;

403、已知x= ‘hello world’,那么表达式x.replace(‘l’, 'g")的值为_______;

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

405、表达式’aaaassddf;.strip( ‘af’)的值为_______;

406、表达式len(‘aaaassddf’.strip( ‘afds’))的值为_______;

407、表达式len( ‘hello world’[100:])的值为_______;

408、表达式’Beautiful is better than ugly.'.startswith(‘Be’,5)的值为_______;

409、已知x = ‘aa b ccc dddd’,那么表达式’.join([v for i;v in enumerate(x[:-1]) if v==x[i+1])的值为_______;

410、表达式eval(‘*’.join(map(str, range(1, 6))))的值为_______;

411、使用pip命令在线安装扩展库numpy的完整命令是_________;

412、使用np.arange(8)生成的数组中最后一个元素的值为_________;

413、使用np.zeros((3,4))生成的数组中元素个数为_________;

414、表达式np.ones((3,4)).sum()的值为_________;

415、表达式len(np.random.randint(0, 50,5))的值为_________;

416、表达式all(np.random.rand(20000)<1)的值为_________;

417、表达式np.diag((1,2,3.4)).shape的值为_________;

418、表达式np.diag((1,2,3,4)).size的值为_________;

419、表达式np.random.randn(3).shape的值为_________;

420、表达式np.random.randn(3,4).shape的值为_________;

421、已知x= np.array((1,2,3,4,5)),那么表达式(x*2).sum()的值为_________;

422、已知x= np.array((1,2,3,4,5)),那么表达式(x**2).max()的值为_________;

423、已知x = np.array((1,2,3,4,5)),那么表达式(2**x).max()的值为_________;

424、已知x= np.array((1,2,3,4,5)),那么表达式(x//5).sum()的值为_________;

425、已知x= np.array((1,2,3,4, 5)),那么表达式sum(x*x)的值为_________;

426、已知x= np.array([1,2,3])和y= np.array([[13], [4],[5]]),那么表达式(×*y).sum()的值为_________;

427、已知x = np.array([3,5,1,9,6,3]),那么表达式np.argmax(x)的值为_________;

428、已知x = np.random.randint(0,100,(3,5)),那么表达式np.ceil(abs(np.sin(x))).sum()的值为_________;

429、已知x = np.array([3,5,1,9,6,3]),那么表达式x[x>5].sum()的值为_________;

430、已知x = np.array([3,5,1,9,6,3]),那么表达式x[(x%2==0)&(x>5)][0]的值为_________;

431、已知x= np.array([3,5,1,9,6,3]),那么表达式np.where(x>5, 1,0).sum()的值为_________;

432、已知x= np.matrix([[1,2,3],[4,5,6]]).那么表达式x.mean(axis=0)的值为_________;

433、已知x= np.matrix([1,2,3,4,5]。那么表达式x*x.T的值为_________;

花了一个月终于整理出来了,800道Python习题,试试你能做对多少道吧!

二、判断题

001、Python是一种跨平台、开源、免费的高级动态编程语言;

002、Python 3.x完全兼容Python 2.x;

003、在Windows平台上编写的Python程序无法在Unix平台运行;

004、不可以在同一台计算机上安装多个Python版本;

005、pip命令支持使用扩展名为whl的文件离线安装Python扩展库;

006、下载whl文件进行离线安装扩展库时,因为whl文件的名字都比较长,可以改成短一些的名字再使用pip进行安装;

007、用来安装Python扩展库的pip命令应该在命令提示符环境下运行,如果安装了多个版本的Python,最好切换至相应版本的Python安装目录下运行;

008、在Python 3.x中,内置函数input()把用户的键盘输入一律作为字符串返回;

009、已知 x = 3,那么赋值语句x = 'abcedfg’是无法正常执行的;

010、Python变量使用前必须先声明,并且一旦声明就不能在当前作用域内改变其类型了;

011、Python不允许使用关键字作为变量名,但是允许使用内置函数名作为变量名,不过这会改变函数名的含义,所以不建议这样做;

012、在Python中可以使用if作为变量名;

013、在Python 3.x中可以使用中文作为变量名;

014、Python变量名必须以字母或下划线开头,并且区分字母大小写;

015、加法运算符可以用来连接字符串并生成新字符串;

016、x = 9999**9999 这样的语句在Python中无法运行,因为数字太大了超出了整型变量的表示范围;

017、3+4j 不是合法的Python表达式;

018、0o12f是合法的八进制数字;

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

020、在Python中0xad是合法的十六进制数字表示形式;

021、4j 是合法Python数字类型;

022、Python使用缩进来体现代码之间的逻辑关系,对缩进的要求非常严格;

023、Python代码的注释只有一种方式,那就是使用#符号;

024、放在一对三引号之间的任何内容将被认为是注释;

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

026、为了让代码更加紧凑,编写Python程序时应尽量避免加入空格和空行;

027、在Python 3.5中运算符+不仅可以实现数值的相加、字符串连接,还可以实现列表、元组的连接和集合的并集运算;

028、在Python中可以使用 for 作为变量名;

029、在Python中可以使用 id 作为变量名,但是不建议这样做;

030、一个数字5也是合法的Python表达式;

031、执行语句from math import sin之后,可以直接使用sin()函数,例如 sin(3);

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

033、Python变量名区分大小写,所以student和Student不是同一个变量;

034、在Python 3.x中reduce()是内置函数;

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

036、表达式pow(3, 2) == 3 ** 2的值为True;

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

039、列表、元组、字符串属于有序序列,而字典和集合属于无序序列;

040、同一个集合中的元素都是唯一的,不会存在重复的元素;

041、同一个列表中的元素都是唯一的,不允许存在相同的元素;

042、列表、元组、字符串支持双向索引,-1表示最后一个元素的下标;

043、集合支持双向索引,-1表示最后一个元素的下标;

044、Python支持使用字典的“键”作为下标来访问字典中的值;

045、列表可以作为字典的“键”

046、元组可以作为字典的“键”

047、字典的“键”必须是不可变的;

048、对于关键字in而言,集合的测试速度比列表快很多;

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

050、已知x为非空列表,那么x.sort(reverse=True)和x.reverse()的作用是等价的;

051、生成器推导式比列表推导式具有更高的效率,推荐使用;

052、Python集合可以包含相同的元素;

053、Python字典中的“键”不允许重复;

054、Python字典中的“值”不允许重复;

055、Python集合中的元素可以是元组;

056、Pvthon集合中的元素可以是列表;

057、已知A和B是两个集合,并且表达式A<B 的值为False,那么表达式A>B的值一定为True;

058、列表对象的append()方法属于原地操作,用于在列表尾部追加一个元素;

059、对于列表而言,在尾部追加元素比在中间位置插入元素速度更快一些,尤其是对于包含大量元素的列表;

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

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

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

063、使用del命令或者列表对象的remove()方法珊除列表中非尾部元素时会影响列表中部分元素的索引;

064、使用列表对象的remove()方法可以删除列表中首次出现的指定元素,如果列中不存在要删除的指定元素则抛出异常;

065、元组是不可变的,不支持列表对象的inset()、remov()等方法,也不支持de命令册除其中的元素,但可以使用del 命令删除整个元组对象;

066、无法册除集合中指定位置的元素,只能删除特定值的元素;

067、元组的访问速度比列表要快一些,如果定义了一系列常量值,并且主要用途仅仅是对其进行遍历而不需要进行任何修改,建议使用元组而不使用列;

068、当以指定“键”为下标给字典对象赋值时,若该“键”存在则表示修改该“键”对应的“值”,若不存在则表示为字典对象添加一个新的“键:值对” ;

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

070、假设×是含有5个元素的列表,那么使用print(x[10])是无法执行的,会抛出异常;

071、只能对列表进行切片操作,不能对元组和字符串进行切片操作;

072、只能通过切片访问列表中的元素,不能使用切片修改列表中的元素;

073、只能通过切片访问元组中的元素,不能使用切片修改元组中的元素;

074、Python集合不支持使用下标访问其中的元素;

075、已知列表 x 中包含超过5个以上的元素,那么语句 x=x[5:]+x[:5]可以实现将列表x中的元素循环左移5位;

076、对于生成器对象x=(3 for i in range(5)),连续两次执行list(x)的结果是一样的;

077、对于大量列表的连接,extend()方法比运算符+具有更高的效率;

078、表达式 {1,3,2}>{1,2,3} 的值为 True ;

080、对于数字n,如果表达式0 not in [n%d for d in range(2, n)]的值为True则说明n是素数;

081、表达式a’+1的值为’b’

082、创建只包含一个元素的元组时,必须在元素后面加一个逗号,例如(3,);

083、表达式 list(‘[1,2,3]’)的值是[1,2,3] ;

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

086、表达式{1,2}*2的值为{1,2,1,2};

087、假设random模块已导入,那么表达式random.sample(range(10), 20)的作用是生成20个不重复的整数;

088、假设random模块已导入,那么表达式 random.sample(range(10), 7)的作用是生成7个不重复的整数;

089、使用random模块的函数randint(1,100)获取随机数时,有可能会得到100 ;

090、已知x= (1,2,3,4),那么执行x[0] =5之后,x的值为(5,2,3,4);

092、内置函数 len()返回指定序列的元素个数,适用于列表、元组、字符串、字典、集合以及range、zip等迭代对象;

093、已知x和y是两个等长的整数列表,那么表达式sum((i*j for i,j in zip(x yv)))的作用是计算这两个列表所表示的向量的内积;

094、已知x和y是两个等长的整数列表,那么表达式[i+jfor i,j in zip(x,y)]的作用是计算这两个列表所表示的向量的和;

095、表达式int(‘1’*64,2) 与 sum(2**i for i in range(64)的计算结果是一样的,但是前者更快一些;

096、已知x = list(range(20)),那么语句 del x[::2]可以正常执行;

097、已知x= list(range(20)),那么语句x[::2]=[]可以正常执行;

098、已知x= list(range(20)),那么语句 print(x[100:200])无法正常执行;

099、已知x是个列表对象,那么执行语句y=x之后,对y所做的任何操作都会同样作用到x上;

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

102、表达式 (i**2 for i in range(100))的结果是个元组;

103、在 Python 中元组的值是不可变的,因此,已知x = ([1],[2]),那么语句x(0).append(3)是无法正常执行的;

104、已知 x={1:1,2:2],那么语句x[3]=3无法正常执行;

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

106、列表对象的排序方法sort()只能按元素从小到大排列,不支持别的排序方式;

107、在Python中,关系运算符可以连续使用,例如1<3<5等价于1<3 and 3<5;

108、当作为条件表达式时,[]与 None等价;

109、当作为条件表达式时,0与False等价;

110、表达式[]== None 的值为True ;

111、当作为条件表达式时,{}与None等价;

112、表达式{}==None的值为True;

113、当作为条件表达式时,空值、空字符串、空列表、空元组、空字典、空集合、空迭代对象以及任意形式的数字0都等价于False;

114、Python关键字and和 or连接多个表达式时具有惰性求值特点,只计算必须计算的表达式;

115、在没有导入标准库 math 的情况下,语句x= 3 or math.sqart(9)也可以正常执行,并且执行后x的值为3;

116、在没有导入标准库math 的情况下,语句x= 3 and math.sqrt(16)也可以正常执行,并且执行后x的值为3;

117、在 Python中,选择结构和循环结构必须带有else子句;

118、如果仅仅是用于控制循环次数,那么使用for i in range(20)和fori in range(20, 40)的作用是等价的;

119、在循环中continue语句的作用是跳出当前循环;

120、在循环中 break语句的作用是结束该语句所在的循环;

121、带有else子句的循环如果因为执行了break语句而退出的话,则会执行else子句中的代码;

122、对于带有else子句的循环语句,如果是因为循环条件表达式不成立而自然结束循环,则执行else子句中的代码;

123、在条件表达式中不允许使用赋值运算符=,会提示语法错误;

124、调用函数时,在实参前面加一个型号*表示序列解包;

125、在 Python 3.x中语句print(*[1,2,3])不能正确执行;

126、函数是代码复用的一种方式;

127、在 Python中,使用关键字define定义函数;

128、定义函数时,即使该函数不需要接收任何参数,也必须保留一对空的圆括号来表示这是一个函数;

129、编写函数时,一般建议先对参数进行合法性检查,然后再编写正常的功能代码;

130、一个函数如果带有默认值参数,那么必须所有参数都设置默认值;

131、在调用函数时,把实参的引用传递给形参,也就是说,在函数体语句执行之前的瞬间,参和实参是同一个对象;

132、在 Python中,不能在一个函数的定义中再定义一个嵌套函数;

133、在Python中, lambda表达式属于可调用对象;

134、定义Python函数时必须指定函数返回值类型;

135、如果在函数中有语句return 3,那么该函数一定会返回整数3;

136、函数中必须包含return语句;

137、函数中的return语句一定能够得到执行;

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

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

140、函数内部定义的局部变量当函数调用结束后被自动删除;

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

142、在函数内部没有办法定义全局变量;

143、在函数内部直接修改形参的值并不影响外部实参的值;

144、在函数内部没有任何方法可以影响实参的值;

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

146、在同一个作用域内,局部变量会隐藏同名的全局变量;

147、形参可以看做是函I数内部的局部变量,函数运行结束之后形参就不可访问了;

148、假设已导入random标准库,那么表达式 max([random.randint(1, 10) for i in range(10)])的值一定是10 ;

149、python标准库 random的函数randint(m,n)用来生成一个[m,n]区间上的随机整数;

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

151、在 Python中定义函数时不需要声明函数参数的类型;

152、在函数中没有任何办法可以通过形参来影响实参的值;

153、在定义函数时,某个参数名字前面带有一个*符号表示可变长度参数,可以接收任意多个普通实参并存放于一个元组之中;

154、在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个关键参数并将其存放于一个字典之中;

155、定义函嘟时,带有默0认值的参数必须出现在参数列表的最右端,任何一个带有默认值的参数右边不允许出现没有默认值的普通位置参数;

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

157、在调用函数时,必须牢记函数形参顺序才能正确传值;

158、lambda表达式中可以使用任意复杂的表达式,但是必须只编写一个表达式;

159、g = lambda x: 3不是一个合法的赋值语句;

160、包含 yield语句的函数一般称为生成器函数,可以用来创建生成器对象;

161、在函数中yield语句的作用和return完全一样;

162、语句pass仅起到占位符的作用,并不会做任何操作;

163、无法使用lambda表达式定义有名字的函数;

164、修饰器本质上也是一个函数,只不过这个函数接收其他函数作为参数并对其进行一定改造后返回—个新函数;

165、函数递归调用时对深度没有限制;

166、在调用函数时,如果传递列表、字典、集合等可变序列作为实参,并且在函数内部使用下标或可变序列对象自身的方法,是可以影响实参的值的;

167、函数的默认值参数的值是在定义函数时确定的;

168、已知seq为长度大于10的列表,并且已导入random模块,那么[random.choice(seg) for i in range(10)和random.sample(seq,10)等价;

169、在Python中定义类时,如果某个成员名称前有2个下划线则表示是私有成员;

170、在类定义的外部没有任何办法可以访问对象的私有成员;

171、Python中-切内容都可以称为对象;

172、栈和队列的都具有先入后出的特点;

173、在一个软件的设计与开发中,所有类名、函数名、变量名都应该遵循统一的风格和规范;

174、定义类时所有实例方法的第一个参数用来表示对象本身,在类的外部通过对象名来调用实例方法时不需要为该参数传值;

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

176、Python 中没有严格意义上的私有成员;

177、在Python中定义类时,运算符重载是通过重写特殊方法实现的。例如,在类中实现了__mul__ ()方法即可支持该类对象的**运算符;

178、在IDLE交互模式下,一个下划线“_”表示解释器中最后一次显示的内容或最后一次语句正确执行的输出结果;

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

180、运算符“-”可以用于集合的差集运算;

181、如果定义类时没有编写析构函数,Python 将提供一个默认的析构函数进行必要的资源清理工作;

182、在派生类中可以通过“基类名.方法名()”的方式来调用基类中的方法;

183、在Python中定义类时实例方法的第一个参 数名称必须是self;

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

185、定义类时如果实现了__contains__()方法,该类对象即可支持成员测试运算in;

186、定义类时如果实现了__len__()方法,该类对象即可支持内置函数len();

187、定义类时实现了__eq__()方法,该类对象即可支持运算符== ;

188、定义类时实现了_pow_()方法,该类对象即可支持运算符**;

189、Python类的构造函数是_init___();

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

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

192、在Python自定义类中,只能定义只读的属性,不能定义可读、可写、可删除的属性;

193、通过对象不能调用类方法和静态方法;

194、类方法和静态方法是属于类的,不能直接访问属于对象的成员;

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

196、任何包含__call__()方法的类的对象都是可调用的;

197、在Python中类也属于可调用对象,是因为使用类创建对象时会自动调用构造方法;

198、函数和对象方法是一样的,内部实现和外部调用都没有任何区别;

199、在设计派生类时,基类的私有成员默认是不会继承的;

200、扩展库numpy中的arange()函数功能和内置函数range()类似,只能生成包含整数的数组,无法创建包含实数的数组;

201、表达式np.emptyl(3,5)).sum()的值一定为0 ;

202、扩展库 numpy 的 isclose()和l allclose()用来测试两个数组是否严格相等;

203、扩展库numpy的 isclose()返回包含若干True/False值的数组,而 allclose()返回True或False值;

204、扩展库numpy的函数 append()和 insert()是在原数组的基础上追加或插入元素,没有返回值;

205、己知x是一个足够大的 numpy 二维数组,那么语句x0,2]=4的作用是把行下标为0、列下标为2的元素值改为4;

206、已知x.shape的值为(3,5),那么语句x;,3]=2的作用是把数组×所有行中列下标为3的元素值都改为2;

207、两个不等长的数组不能相加;

208、已知×和y是两个等长的一维数组,那么表达式x.dot(y)和 sum(x*y)的值相等;

209、已知x= np.arange(30).reshape(5,6)那么语句x([0,3],:]=0的功能为把数组×中行下标为0和3的所有元素值都修改为0.;

210、数组的reshape()方法不能修改元素个数,resize()方法可以;

211、扩展库numpy的函数corrcoef()用来计算相关系数矩阵;

212、扩展库numpy函数cov()可以用来计算协方差,函数std()用来计算标准差;

213、扩展库numpy的线性代数子模块linalg中提供了用来计算特征值与特征向量的函数eig();

214、扩展库numpy的线性代数子模块 linalg中提供了用来计算逆矩阵的函数inv();

215、扩展库numpy的线性代数子模块linalg 中提供了求解线性方程组的函数sove()和求解线性方程组最小二乘解的函数lstsq();

216、扩展库numpy的线性代数子模块 linalg中提供了用来计算不同范数的函数norm();

217、扩展库numpy在 linalg模块中提供了计算奇异值分解的函数svd();

218、扩展库pandas 中 Series对象的add_suffix()方法可以用于在每行索引后面增加后缀;

219、扩展库pandas 中 Series对象的add_prefix()方法可以用于在每行索引前面增加前缀;

220、扩展库pandas中 Series对象的hist()方法可以用于绘制直方图;

221、使用pandas i的 date_range()函数生产日期时间数据时,如果以6天为间隔可以设置参数freq为’6D’ ;

222、扩展库pandas 的read_csv()函数用于读取CSV文件中的数据并创建DataFrame对象;

223、扩展库pandas 的read_excel()函数用于读取Excel文件中的数据并创建DataFrame对象;

224、扩展库pandas 中 DataFrame 对象的index属性表示列名;

225、扩展库pandas支持使用Python字典直接创建DataFrame对象,此时字典中的“键”将作为DataFrame中的 columns;

226、使用扩展库pandas的函数 read_excel)读取Excel文件时,可以使用参数 sheetname 指定读取哪个工作表中的数据,并且该参数必须指定为工作表的名字,不能是序号;

227、使用扩展库pandas 的函数read_excel()读取Excel文件时,可以使用参数 thousands 指定把什么符号作为千分符;

228、使用扩展库 pandas i的函数read_excell)读取Excel文件时,可以使用参数 index_col指定把哪一列的数据作为DataFrame对象的index;

229、使用扩展库pandas的函数read_excel()读取Excel文件时,可以使用参数na_values 指定哪些值被解释为缺失值;

230、使用扩展库pandas 的函数 read_excel()读取Excel文件时,可以使用参数 usecols 指定只读取哪几列的数据;

231、已知 df为pandas 的DataFrame对象,那么 df[:10]表示访问df中前10列数据;

232、使用扩展库pandas 中 DataFrame对象的 iloc方法访问数据时,可以使用Datarame的 index标签,也可以使用整数序号来指定要访问的行和列;

233、使用扩展库pandas 中 DataFrame对象的loc方法访问数据时,可以使用DataFrame的 index标签,也可以使用整数序号来指定要访问的行和列;

234、已知 df为pandas 的 DataFrame对象,那么df[:10]表示访问df中前10行数据;

235、已知df为 pandas 的 DataFrame对象,那么df.at[3, ‘姓名’]表示访问行下标为3,姓名列的值;

236、已知df为pandas的DataFrame对象,那么dfldf’交易额’>1700]表示访问df中交易额高于1700元的数据;

237、已知df为pandas 的 DataFrame对象,那么dfldf’姓名’].isin('张三,李四’D]表示访问df中“姓名”列的值为“张三”或“李四”的数据;

238、已知df为pandas的 DataFrame对象,那么dfldft’交易额’].between(800,850)]表示访问df中“交易额”列的值介于800和l 850之间的数据;

239已知df为pandas 的DataFrame对象,那么df.describe()可以返回所有列的数值数量、最小值、最大值、标准差、平均值等信息;

240、扩展库pandas中 DataFrame对象的nsmallest()方法可以返回某列值最小的前几条数据;

241、扩展库pandas 中 DataFrame对象的nlargest()方法可以返回某列值最大的前几条数据;

242、扩展库pandas 中 DataFrame对象支持sort_index()方法沿某个方向按标签进行排序并返回一个新的DataFrame对象;

243、扩展库pandas 中 DataFrame结构支持使用 groupby()方法根据指定的一列或多列的值进行分组,得到一个GroupBy对象,该GroupBy对象支持大量方法对列数据进行求和、求均值以及其他操作,并自动忽略非数值列;

244、扩展库pandas 中 DataFrame对象 groupby()方法的参数 as_index=False时用来设置分组的列中的数据不作为结果DataFrame对象的index;

245、在使用pandas进行处理时,需要借助于人工分析根据具体的业务数据来确定异常值的阀值;

246、扩展库pandas 中 DataFrame对象支持使用dropna()方法丢弃带有缺失值的数据行,或者使用 fillna()方法对缺失值进行批量替换,也可以使用 loc()、iloc()方法直接对符合条件的数据进行替换;

247、扩展库pandas 中 DataFrame对象的drop_duplicates()方法可以用来删除重复的数据;

248、扩展库pandas 中 DataFrame结构的diff()对象支持进行数据差分,返回新的DataFrame对象;

249、扩展库pandas 中 DataFrame对象提供了pivot()方法和 pivot_table()方法实现透视表所需要的功能,返回新的DataFrame对象;

250、扩展库pandas提供了crosstab()函数根据一个DataFrame对象中的数据生成交叉表,返回新的DataFrame对象;

251、如果DataFrame对象中索引是日期时间数据,或者包含日期时间类型数据列,可以使用resample()方法进行重采样,实现按时间段进行统计查看员工业绩的功能;

252、标准差是一组数据分散程度或波动程度的一种度量,也是数据不确定性或不稳定性的一种度量。对于一组特定的数据,如果标准差较大则代表大部分数值和其平均值之间差异较大,如果标准差较小则代表这些数值较接近平均值;

253、扩展库pandas 中 DataFrame对象的std()方法可以计算标准差,cov()方法可以计算协方差;

254、扩展库 pandas 中 Series 对象和DataFrame的列数据提供了cat、 dt、 str三种属性接口(accessors),分别对应分类数据、日期时间数据和字符串数据;

255、扩展库 pandas的DataFrame数据中的日期时间列支持dt接口,该接口提供了dayofweek.dayofyear.is_leap_year.quarter、weekday_name等属性和方法;

256、扩展库 pandas 的 DataFrame 数据中的字符串列支持str接口,该接口提供了center、contains、count、endswith、find、extract、 lower、split等大量属性和方法;

257、扩展库pandas的 DataFrame对象的 plot()方法可以直接绘制折线图、柱状图、饼状图等各种形状的图形来展示数据,绘图时会自动调用扩展库matplotlib的功能;

花了一个月终于整理出来了,800道Python习题,试试你能做对多少道吧!

三、选择题

01、多选题:下面特点属于Python语言的有哪些?
A.开源
B.免费
C.跨平台
D.解释执行

02、多选题:下面导入标准库对象的语句,正确的有?
A.from math import sin
B.from random import random
C.from math import *
D.import*

03、单选题:已知x=[1,2,3],执行语句x.append(4)之后,x的值是什么?
A.[1,2,3,4]
B. [4]
C.[1,2,3]
D.4

04、单选题:已知x=[1,2,3,4,5,6,7],那么x. pop()的结果是?
A.1
B.4
C.7
D.5

05、单选题:己知x=[1,2]和y=[3,4],那么xty的结果是?
A.3
B.7
C.[1,2,3,4]
D.[4,6]

06、单选题:sum([i*i for i in range (3)])的计算结果是?
A.3
B.5
C.2
D.14

07、单选题:下面代码的输出结果是?for i inrange (3):print (2,end=‘,’)
A.2,2,2,
B.2,2,2
C.2 2 2
D.2 2 2,

08、多选题:在 Python中,函数参数支持的类型有?
A.位置参数
B.默认值参数
C.关键参数
D.可变长度参数

09、单选题:下面哪个是用来定义类的关键字?
A.continue
B.class
C.CLASS
D. yield

10、单选题:os.path模块的下列方法,哪个是用来判断指定路径是否存在的?
A.exists()
B.exist()
C.getsize()
D.isfile()

11、单选题:os的下列函数中,用来给文件重命名的是?
A. rename()
B.remove()
C.system()
D.listdir()

花了一个月终于整理出来了,800道Python习题,试试你能做对多少道吧!

三、问答题

001、到Python官方网站下载并安装Python解释器环境

002、到Anaconda官方网站下载并安装最新的Anaconda3开发环境

003、Python程序的__name__的作用是什么?

004、简单解释Python基于值的内存管理模式

005、简单解释运算符/和//的区别

006、为什么应尽量从列表的尾部进行元素的增加与删除操作?

007、编写程序,生成包含1000个0到100之间的随机整数,并统计每个元素的出现次数;

008、编写程序,用户输入一个列表和2个整数作为下标,然后使用切片获取并输出列表中介于2个下标之间的元素组成的子列表。例如用户输入[1, 2, 3, 4, 5, 6]和2,5,程序输出[3, 4, 5, 6] ;

009、设计一个字典,并编写程序,用户输入内容作为“键”,然后输出字典中对应的“值”,如果用户输入的“键”不存在,则输出“您输入的键不存在!”

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

011、分析逻辑运算符“or”的短路求值特性;

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

013、编写程序,生成一个包含50个随机整数的列表,然后删除其中所有奇数(提示:从后向前删);

014、编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变(提示:使用切片);

015、编写程序,用户从键盘输入小于1000 的整数,对其进行因式分解(例如,10=2×5,60=2×2×3×5 );

016、编写程序,至少使用2种不同的方法计算100以内所有奇数的和;

017、编写程序,输出所有由1、2、3、4这四个数字组成的素数,并且在每个素数中每个数字只使用一次;

018、编写程序,实现分段函数计算,如下表所示;

x y
x<0 0
0<=x<5 5
5<=x<10 3x-5
10<=x<20 0.5x-2
20<=x 0

019、编写程序,输入任意大的自然数,输出各位数字之和;

020、编写程序,输入两个集合 setA和 setB,分别输出它们的交集、并集和差集setA-setB;

021、编写程序,输入一个自然数,输出它的二进制、八进制、十六进制表示形式;

022、编写程序,输入一个包含若干整数的列表,输出一个新列表,要求新列表中只包含原列表中的偶数;

023、编写程序,输入两个分别包含若干整数的列表 lstA 和IlstB,输出一个字典,要求使用列表 lstA中的元素作为键,列表 lstB 中的元素作为值,并且最终字典中的元素数量取决于 lstA和lstB中元素最少的列表的数量;

024、编写程序,输入一个包含若干整数的列表,输出新列表,要求新列表中的所有元素来自于输入的列表,并且降序排列;

025、编写程序,输入一个包含若干整数的列表,输出列表中所有整数连乘的结果;

026、编写程序,输入两个各包含2个整数的列表,分别表示城市中两个地点的坐标,输出两点之间的曼哈顿距离;

027、编写程序,输入包含若干集合的列表,输出这些集合的并集,要求使用reduce()函数和lambda表达式完成;

028、输入一个自然数字符串,然后输出各位数字之和。例如,输入字符串1234,输出 10;

029、输入一个字符串,输出翻转(首尾交换)后的字符串。例如,输入字符串12345,输出54321;

030、输入一个包含若干整数的列表,输出列表中的最大值。例如,输入[1,2,3,4,5,888],输出 888;

031、输入一个包含若干整数的列表,把列表中所有整数转换为字符串,然后输出包含这些字符串的列表。例如,输入[1,2,3,4,5,888],输出[‘1’,‘2’ ,‘3’, ‘4’, ‘5’ , '888] ;

032、输入一个包含若干任意数据的列表,输出该列表中等价于True的元素组成的列表。例如,输入[1,2,0,None,False, ‘a’]输出[1,2, ‘a’] ;

033、输入一个包含若干自然数的列表,输出这些自然数的平均值,结果保留3位小数;

034、输入一个包含若干自然数的列表,输出这些自然数降序排列后的新列表;

035、输入一个包含若干自然数的列表,输出一个新列表,新列表中每个元素为原列表中每个自然数的位数。例如,输入[1,888,99,23456],输出[1,3,2,5] ;

036、输入一个包含若干实数的列表,输出其中绝对值最大的实数。例如,输入[-8,64,3.5,-89],输出-89 ;

037、输入一个包含若干整数的列表,输出这些整数的乘积。例如,输入[-2,3,4],输出-24 ;

038、输入两个包含若干整数的等长列表,把这两个列表看作两个向量,输出这两个向量的内积 ;

花了一个月终于整理出来了,800道Python习题,试试你能做对多少道吧!

五、代码阅读/改写题

001、阅读下面的代码,分析其功能,并指出可能存在的错误及其原因,最好能够给出解决方案。

def func(n,i):
minNI = min(i,n-1)
resu1t = 1
for j in range(0,minNI)
resu1t = resu1t * (n-j) / (minNI-J)
return resu1t

002、给定字符串origin和userInput,计算userInput与origin的匹配精确度,也就是对应位置上字符一样的数量与origin长度的比值。

可能的应用

打字练习程序的成绩计算,origin表示要测试的内容,userInput表示练习者的实际输入,假设userInput的长度小于等于origin。

def Rate(origin,userInput):
if not (isinstance(origin,str) and isinstance(userInput,str)):
print('The two prameters must be strings.')
return
if len(origin)<len(userInput):
print('Sorry. I suppose the second parameter string is shorter.')
return
right = 0 # 精确匹配的字符个数
for origin_char,user_char in zip(origin,userInput):
if origin_char==user_char:
right += 1
origin = 'Shandong Institute of Business and Technology'
suerInput = 'Shandong institute of business and technolog'
print(Rate(origin,userInput)) # 输出测试结果

题目要求

  • 使用生成器表达式改写上面的程序。

  • 使用函数式编程改写上面的程序。

003、 题目要求:根据给定的文件“超市营业额2.xlsx”,数据格式如下:
花了一个月终于整理出来了,800道Python习题,试试你能做对多少道吧!

编写程序完成下面的题目,所有代码保存在一个文件中,该文件使用自己姓名进行命名,例如“张三.py”,其中每个题目使用注释“#第1题”类似的形式进行分隔;

01)、读取文件中的数据,删除重复数据,把缺失的交易额使用每个员工自己所有交易额的中值进行填充,把小于500的交易额统一改为500,大于3000的交易额改为3000,修改后的数据保存为文件“数据调整结果.xlsx”,文件结构与“超市营业额2.xlsx”相同。然后使用修改后的数据完成后面的题目;

02)、查看单日交易总额最小的3天的交易数据,并查看这三天是周几,程序运行后直接输出这些结果;

03)、把所有员工的工号前面增加一位数字,增加的数字和原工号最后一位相同,把修改后的数据写入新文件“超市营业额2_修改工号.xlsx”。例如,工号1001变为11001,1003变为31003 ;

04)、把每个员工的交易数据写入文件“各员工数据.xlsx”,每个员工的数据占一个worksheet,结构和“超市营业额2.xlsx”一样,并以员工姓名作为worksheet的标题;

05)、查看日期尾数为6的数据前12行,输出这些结果,格式如下;
花了一个月终于整理出来了,800道Python习题,试试你能做对多少道吧!
06)、查看日期尾数为12的交易数据,输出这些结果,格式如下;
花了一个月终于整理出来了,800道Python习题,试试你能做对多少道吧!
07)、计算张三每天交易总额的增幅,也就是每天交易总额减去前一天的交易总额,程序运行后输出前5天的结果,格式如下;
花了一个月终于整理出来了,800道Python习题,试试你能做对多少道吧!
08)、绘制折线图展示一个月内各柜台营业额每天变化趋势,保存为“1.png”,设置dpi为200 ;

09)、绘制饼状图展示该月各柜台营业额在交易总额中的占比,保存为“2.png”,设置dpi为200 ;

10)、把销售总额低于5万的员工工号和姓名写入“业绩差的员工.txt”文件,每行一个员工信息,工号和姓名之间使用英文逗号分隔;

11)、绘制柱状图展示每个员工在不同柜台上的交易总额,结果类似于下图,保存为“3.png”,设置dpi为200 ;
花了一个月终于整理出来了,800道Python习题,试试你能做对多少道吧!
12)、使用透视表查看每个员工在不同柜台上班的次数,结果类似于下图显示的格式,程序运行后直接输出这些结果;

兄弟们,你学废了吗?