python真題
老男孩Python全棧7期練習(xí)題(面試真題模擬)一、選擇題(32分)1、python不支持的數(shù)據(jù)類型有A、charB、intC、floatD、list2. x = “foo” y = 2 print(x+y)A. foo B.foofooC.foo2 D.2 E.An exception is thrown3、關(guān)于字符串下列說法錯誤的是A、字符應(yīng)該視為長度為1的字符串B、字符串以0標(biāo)志字符串的結(jié)束C、既可以用單引號,也可以用雙引號創(chuàng)建字符串D、在三引號字符串中可以包含換行回車等特殊字符4、以下不能創(chuàng)建一個字典的語句是A、dic1 = B、dic2 = 123:345C、dic3 = 1,2,3:uestcD、dic3 = (1,2,3):uestc5Kvps = 1:1,2:2theCopy = kvpskvps1 = 5sum = kvps1 + theCopy1Print sumA.1 B.2 C.7 D.106、以下何者是不合法的布爾表達(dá)式: Ax in range(6) B.3=a C.e>5 and 4=f D(x-6)>57、下列表達(dá)式的值為True的是 A5+4j>2-3j B.3>2=2 C.e>5 and 4=f D.(x-6)>58、已知x=43,ch=A,y = 1,則表達(dá)式(x>=y and ch<b and y)的值是A、0B、1C、出錯D、True9、下列表達(dá)式中返回為True的是:A、3>2>2B、abc>xyzC、0x56 > 56D、(3,2)>(a,b)10、下列Python語句正確的事(多選)A、min = x if x < y else yB、max = x > y ? x : yC、if(x>y) print(x)D、while True:pass11.若k為整形,下述while循環(huán)執(zhí)行的次數(shù)為:k=1000while k>1: print k k=k/2 A.9 B.10 C.11 D.10012、以下敘述正確的是:A、continue語句的作用是結(jié)束整個循環(huán)的執(zhí)行B、只能在循環(huán)體內(nèi)使用break語句C、在循環(huán)體內(nèi)使用break語句或continue語句的作用相同D、從多層循環(huán)嵌套中退出時,只能使用goto語句13、關(guān)于python中的復(fù)數(shù),下列說法錯誤的是A、表示復(fù)數(shù)的語法是real+image jB、實部和虛部都是浮點數(shù)C、虛部必須后綴j且j不區(qū)分大小寫D、方法conjugate返回復(fù)數(shù)的共軛復(fù)數(shù)14、下面的語句哪個會無限循環(huán)下去: A、for a in range(10):time.sleep(10)B、while 1<10:time.sleep(10)C、while True:breakD、a = 3,-1, for i in a: if not a: break15、下面的代碼,哪些會輸出1,2,3三個數(shù)字(多選,選錯不得分):A 、for i in range(3):print(i)B、aList = 0,1,2 for i in aList:print(i+1)C、i = 1 while i < 3:print(i)i+=1D、for i in range(3):print(i+1)16、Python如何定義一個函數(shù):A、class <name>(<type> arg1,<type> arg2,<type> argN)B、function <name>(arg1,arg2,argN)C、def <name>(arg1,arg2,argN)D、def <name>(<type> arg1,<type> arg2,<type> argN)二、填空題(10分)1、以下函數(shù)需要在其中飲用一個全局變量k,請?zhí)顚懻Z句: def fun()_k = k+12、L=range(100)1) 取第一到第三個元素_2) 取倒數(shù)第二個元素_3) 取后十個元素_4) 把L復(fù)制給L1用_3、判斷dict有沒有某個key用的方法是_4、獲取list的元素個數(shù),和向末尾追加元素的方法分別是_ _5.以下的代碼的輸出將是什么: _def extendList(val,list=):list.append(val)return listlist1 = extendList(10)list2 = extendList(123,)list3 = extendList(a)print “l(fā)ist1 = %s”%list1print “l(fā)ist2 = %s”%list2print “l(fā)ist3 = %s”%list36.下面程序的輸出結(jié)果是:_x=Truey=Falsez=Falseif x or y and x:print "yes"else:print "no"三、簡答題(20分)1、如何判斷一個變量是不是字符串2、is 和 = 的區(qū)別3、Python里面如何實現(xiàn)tuple和list的轉(zhuǎn)換。4、list和tuple有什么不同5、如何得到列表list的交集與差集。6、Python中定義函數(shù)時如何書寫可變參數(shù)和默認(rèn)參數(shù)?7、*args和*kwargs在什么情況下會使用到?請給出使用*kwargs的事例8、請描述unicode,utf-8,gbk等編碼之間的關(guān)系?9、如何使用python刪除一個文件10、def func(a,b,c=0,*args,*kwargs):pass*args,*kwargs的作用是什么?四、寫代碼(38分)1、d=a:1,b:2,c:3請打印出key、value對(3分)2、請寫出一段Python代碼實現(xiàn)刪除一個list里面的重復(fù)元素。(6分)3、使用Python/C 上機(jī)解決以下題目(13分)1)斐波那契數(shù)列1,2,3,5,8,13,21.根據(jù)這樣的規(guī)律,編程求出400萬以內(nèi)最大的斐波那契數(shù),并求出他是第幾個斐波那契數(shù)。def fib(n): a,b,m = 1,1,0 while a < n: a,b = a+b,a m+=1 print(第, 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" 要求寫一段代碼,實現(xiàn)兩個字典的相加,不同的key對應(yīng)的值保留,相同的key對應(yīng)的值相加后保留,如果是字符串就拼接,如上示例得到結(jié)果為: dictc = "a":1,"b":5,"c":3,"d":9,"e":7,"m":9,"f":"hello","k":"world"5、什么是裝飾器?寫一個裝飾器,可以打印輸出方法執(zhí)行時長的信息(8分)6、請寫出log的實現(xiàn)(主要功能是打印函數(shù)名)(8分)logdef now():print 2017-08-31>>>now()輸出:call now():2017-08-31附加題(20分)有一個數(shù)據(jù)結(jié)構(gòu)如下所示,請編寫一個函數(shù)從該結(jié)構(gòu)數(shù)據(jù)中返回由指定的字段和對應(yīng)的值組成的字典。如果指定字段不存在,則跳過該字段。(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":8fields:由"|"連接的以"fld"開頭的字符串,如:fld2|fld3|fld7|fld19def select(data,fields):# TODO:implementationreturn resultdef select(data,fields):fields_lst = fields.split(|)for key in data:if type(datakey) = dict:passreturn result