老男孩Python全栈7期练习题(面试真题模拟)一、选择题(32分)1、python不支持的数据类型有A、charB、intC、floatD、list2.x=“foo”y=2print(x+y)A.fooB.foofooC.foo2D.2E.Anexceptionisthrown3、关于字符串下列说法错误的是A、字符应该视为长度为1的字符串B、字符串以\0标志字符串的结束C、既可以用单引号,也可以用双引号创建字符串D、在三引号字符串中可以包含换行回车等特殊字符4、以下不能创建一个字典的语句是A、dic1={}B、dic2={123:345}C、dic3={[1,2,3]:'uestc'}D、dic3={(1,2,3):'uestc'}5.Kvps={‘1’:1,’2’:2}theCopy=kvpskvps[‘1’]=5sum=kvps[‘1’]+theCopy[‘1’]PrintsumA.1B.2C.7D.106、以下何者是不合法的布尔表达式:A.xinrange(6)B.3=aC.e5and4==fD(x-6)57、下列表达式的值为True的是A.5+4j2-3jB.32==2C.e5and4==fD.(x-6)58、已知x=43,ch=‘A’,y=1,则表达式(x=yandch‘b’andy)的值是A、0B、1C、出错D、True9、下列表达式中返回为True的是:A、322B、’abc’’xyz’C、0x5656D、(3,2)(‘a’,’b’)10、下列Python语句正确的事(多选)A、min=xifxyelseyB、max=xy?x:yC、if(xy)print(x)D、whileTrue:pass11.若k为整形,下述while循环执行的次数为:k=1000whilek1:printkk=k/2A.9B.10C.11D.10012、以下叙述正确的是:A、continue语句的作用是结束整个循环的执行B、只能在循环体内使用break语句C、在循环体内使用break语句或continue语句的作用相同D、从多层循环嵌套中退出时,只能使用goto语句13、关于python中的复数,下列说法错误的是A、表示复数的语法是real+imagejB、实部和虚部都是浮点数C、虚部必须后缀j且j不区分大小写D、方法conjugate返回复数的共轭复数14、下面的语句哪个会无限循环下去:A、forainrange(10):time.sleep(10)B、while110:time.sleep(10)C、whileTrue:breakD、a=[3,-1,',']foriina[:]:ifnota:break15、下面的代码,哪些会输出1,2,3三个数字(多选,选错不得分):A、foriinrange(3):print(i)B、aList=[0,1,2]foriinaList:print(i+1)C、i=1whilei3:print(i)i+=1D、foriinrange(3):print(i+1)16、Python如何定义一个函数:A、classname(typearg1,typearg2,…typeargN)B、functionname(arg1,arg2,…argN)C、defname(arg1,arg2,…argN)D、defname(typearg1,typearg2,…typeargN)二、填空题(10分)1、以下函数需要在其中饮用一个全局变量k,请填写语句:deffun()_________________k=k+12、L=range(100)1)取第一到第三个元素_______2)取倒数第二个元素_______3)取后十个元素_______4)把L复制给L1用_______3、判断dict有没有某个key用的方法是_______4、获取list的元素个数,和向末尾追加元素的方法分别是_____________5.以下的代码的输出将是什么:_______defextendList(val,list=[]):list.append(val)returnlistlist1=extendList(10)list2=extendList(123,[])list3=extendList(‘a’)print“list1=%s”%list1print“list2=%s”%list2print“list3=%s”%list36.下面程序的输出结果是:_________x=Truey=Falsez=Falseifxoryandx:printyeselse:printno三、简答题(20分)1、如何判断一个变量是不是字符串2、is和==的区别3、Python里面如何实现tuple和list的转换。4、list和tuple有什么不同5、如何得到列表list的交集与差集。6、Python中定义函数时如何书写可变参数和默认参数?7、*args和**kwargs在什么情况下会使用到?请给出使用**kwargs的事例8、请描述unicode,utf-8,gbk等编码之间的关系?9、如何使用python删除一个文件10、deffunc(a,b,c=0,*args,**kwargs):pass*args,**kwargs的作用是什么?四、写代码(38分)1、d={‘a’:1,’b’:2,’c’:3}请打印出key、value对(3分)2、请写出一段Python代码实现删除一个list里面的重复元素。(6分)3、使用Python/C上机解决以下题目(13分)1)斐波那契数列1,2,3,5,8,13,21.....根据这样的规律,编程求出400万以内最大的斐波那契数,并求出他是第几个斐波那契数。deffib(n):a,b,m=1,1,0whilean:a,b=a+b,am+=1print('第',m,'个','值为',b)fib(4000000)2)dicta={a:1,b:2,c:3,d:4,f:hello}dictb={b:3,d:5,e:7,m:9,k:world}要求写一段代码,实现两个字典的相加,不同的key对应的值保留,相同的key对应的值相加后保留,如果是字符串就拼接,如上示例得到结果为:dictc={a:1,b:5,c:3,d:9,e:7,m:9,f:hello,k:world}5、什么是装饰器?写一个装饰器,可以打印输出方法执行时长的信息(8分)6、请写出log的实现(主要功能是打印函数名)(8分)@logdefnow():print‘2017-08-31’now()输出:callnow():2017-08-31附加题(20分)有一个数据结构如下所示,请编写一个函数从该结构数据中返回由指定的字段和对应的值组成的字典。如果指定字段不存在,则跳过该字段。(10分)data:{time:2016-08-05T13:13:05,some_id:ID1234,grp1:{fld1:1,fld2:2},xxx2:{fld3:0,fld5:0.4},fld6:11,fld7:7,fld46:8}fields:由|连接的以fld开头的字符串,如:fld2|fld3|fld7|fld19defselect(data,fields):#TODO:implementationreturnresultdefselect(data,fields):fields_lst=fields.split(‘|’)forkeyindata:iftype(data[key])==dict:passreturnresult