Python 30道高頻面試題及詳細(xì)解答
開(kāi)學(xué)啦,開(kāi)學(xué)啦!周末坐地鐵的時(shí)候看到很多同學(xué)推著行李箱,拎著大包小包的穿梭在人群中,哎新的一學(xué)期又開(kāi)始啦,同時(shí)也意味著很多同學(xué)要準(zhǔn)備畢業(yè)啦,尤其是準(zhǔn)大四,準(zhǔn)研三的同學(xué)。
今年的招聘行情并不樂(lè)觀(guān),小公司的宣講會(huì)少了,連大廠(chǎng)的宣講會(huì)也少了很多。目前這個(gè)行情多一份技能就多一份競(jìng)爭(zhēng),懂Python的需要再學(xué)點(diǎn)Java,會(huì)Java的也能擼起袖子寫(xiě)Python的測(cè)試腳本,技多不壓身啊。
今晚小編收羅了一些高頻的Python面試題,為大家的求職面試添磚加瓦,幫你打call加油!
1.如何用一行代碼生成[1,3,5,7,9,11,13,15,17,19]
2 .寫(xiě)一個(gè)等差數(shù)列
產(chǎn)生一個(gè)首項(xiàng)為8,公差為12,末項(xiàng)不大于100的列表
3.一行代碼求1到1000內(nèi)的整數(shù)和
4.字典按Value排序并返回新字典
簡(jiǎn)單的一個(gè)字典排序問(wèn)題,字典是Python最重要的三大基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)
5. 打亂一個(gè)列表
使用random模塊可以輕松搞定,不得不說(shuō)這個(gè)random庫(kù)其實(shí)很有用,里面有很多重要的函數(shù)值得大家熟練掌握
6.如何刪除list里面的重復(fù)的元素并保證順序并不變化
很多人第一時(shí)間會(huì)想到set(),set可以去重復(fù)的,但是不能保證列表元素的順序,正確的玩法是這樣的:
7.字符串處理成字典
輸入一個(gè)長(zhǎng)的字符串,如何快速的編程字典,簡(jiǎn)單的規(guī)則可以用split,如果是復(fù)雜的需要構(gòu)造自定義的正則去處理。
8.怎么找出兩個(gè)列表的相同元素和不同元素
給定兩個(gè)列表,需要你快速的尋找相同的元素,可以用很多方法,自己寫(xiě)算法也可以直接用set里面的內(nèi)置函數(shù)intersection()和difference()
9.輸入一個(gè)日期,判斷這一天是今年的哪一天
日期的使用也是非常常見(jiàn)的,面試的時(shí)候會(huì)經(jīng)常問(wèn),Python里面的datatime模塊能輕松處理大部分的日期問(wèn)題
10.遍歷目錄內(nèi)子目錄,抓取zip文件
利用os模塊,walk方法進(jìn)行層層遍歷所有的文件,os.path.splittext()返回文件的名字和擴(kuò)展名,然后過(guò)濾。這道題的出鏡率還是很高,小編曾經(jīng)面試某H公司就被問(wèn)到的
11.如果你的PC是4G內(nèi)存,如何處理1個(gè)10G的csv文件
可以用兩種方法,使用Python的生成器yield 分行讀取,還有就是用Python里面的神器pandas,這個(gè)庫(kù)是Python玩數(shù)據(jù)分析最最厲害的庫(kù),設(shè)置里面的read_csv函數(shù)的chunk值即可,pandas是用c語(yǔ)言寫(xiě)的,處理大數(shù)據(jù)速度很快
12.統(tǒng)計(jì)一個(gè)單詞本里面頻次最高的10個(gè)單詞
使用yield進(jìn)行數(shù)據(jù)讀取逐行讀取,然后用正則進(jìn)行清洗,最后保存到defaultdict對(duì)象中。
13.如何反轉(zhuǎn)一個(gè)整數(shù),比如-12345 變成-54321
這道題目還是稍微有點(diǎn)復(fù)雜的,需要化解為下面幾步處理:
- 如何x位于(-10,10)區(qū)間,直接返回;
- 然后把x轉(zhuǎn)換為字符串的對(duì)象sx;
- 如果x是負(fù)數(shù),截取sx[1:],并反轉(zhuǎn)字符串;
- 如果x是正數(shù),直接反轉(zhuǎn)字符串;
- 最后使用內(nèi)置函數(shù)int()轉(zhuǎn)為整數(shù);
14.lambda函數(shù)的形參和返回值
key值為lambda函數(shù),說(shuō)說(shuō)lambda函數(shù)的形參和返回值?lambda函數(shù)在Python里面頗為神秘,用的好可以事半功倍,但是你是否真的理解它。
lambda的函數(shù)的形參為s,解包之后的元素值為{1,3,5,7},{1,5,7},{2,4,6,7,8}然后取它們的長(zhǎng)度為4,3,5
15.使用filter()來(lái)求出列表中大于10的元素
filter函數(shù)配合lambda函數(shù),可以輕松過(guò)濾
16.可變類(lèi)型和不可變類(lèi)型,列舉3個(gè)
可變類(lèi)型有l(wèi)ist,dict,deque
不可變類(lèi)型有字符串str,int,float,tuple
17. is 和==有什么區(qū)別
is 是用來(lái)判斷兩個(gè)對(duì)象的標(biāo)示號(hào)(內(nèi)存地址)是否相等
==是用來(lái)判斷或者內(nèi)容值是否相等
18.有什么方法可以獲取類(lèi)的所有屬性和方法?
獲取一個(gè)下面的類(lèi)的所有屬性和方法,可以使用dir()內(nèi)置函數(shù)
熬夜太晚,小編有點(diǎn)體力不支太困太困啦,還有12道Python面試題,小編再出一篇進(jìn)行總結(jié)。懂的同學(xué),溫故而知新,不懂的同學(xué)可以臨時(shí)磨槍?zhuān)豢煲补庋健?/p>
面試這活除了經(jīng)驗(yàn)和運(yùn)氣,成功有很大一部分是靠精心準(zhǔn)備,準(zhǔn)備的越充分,成功的幾率越大,學(xué)霸除外,大家加油!