溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python工程師有哪些面試真題

發(fā)布時間:2022-01-17 17:19:35 來源:億速云 閱讀:107 作者:iii 欄目:編程語言

這篇文章主要講解了“Python工程師有哪些面試真題”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python工程師有哪些面試真題”吧!

1、請盡可能列舉python列表的成員方法,并給出一下列表操作的答案:

(1) a=[1, 2, 3, 4, 5], a[::2]=?, a[-2:] = ?

(2) 一行代碼實現(xiàn)對列表a中的偶數(shù)位置的元素進(jìn)行加3后求和?

(3) 將列表a的元素順序打亂,再對a進(jìn)行排序得到列表b,然后把a(bǔ)和b按元素順序構(gòu)造一個字典d。

2、用python實現(xiàn)統(tǒng)計一篇英文文章內(nèi)每個單詞的出現(xiàn)頻率,并返回出現(xiàn)頻率***的前10個單詞及其出現(xiàn)次數(shù),并解答以下問題?(標(biāo)點(diǎn)符號可忽略)

(1) 創(chuàng)建文件對象f后,解釋f的readlines和xreadlines方法的區(qū)別?

(2) 追加需求:引號內(nèi)元素需要算作一個單詞,如何實現(xiàn)?

3、簡述python GIL的概念, 以及它對python多線程的影響?編寫一個多線程抓取網(wǎng)頁的程序,并闡明多線程抓取程序是否可比單線程性能有提升,并解釋原因。

4、用python編寫一個線程安全的單例模式實現(xiàn)。

5、請回答一下問題:

(1) 闡述一下裝飾器,描述符(property)、元類的概念,并列舉其應(yīng)用場景;

(2) 如何動態(tài)獲取和設(shè)置對象的屬性。

6、Python里面如何拷貝一個對象?(賦值,淺拷貝,深拷貝的區(qū)別)

答:賦值(=),就是創(chuàng)建了對象的一個新的引用,修改其中任意一個變量都會影響到另一個。

淺拷貝:創(chuàng)建一個新的對象,但它包含的是對原始對象中包含項的引用(如果用引用的方式修改其中一個對象,另外一個也會修改改變){1,完全切片方法;2,工廠函數(shù),如list();3,copy模塊的copy()函數(shù)}

深拷貝:創(chuàng)建一個新的對象,并且遞歸的復(fù)制它所包含的對象(修改其中一個,另外一個不會改變){copy模塊的deep.deepcopy()函數(shù)}

7、介紹一下except的用法和作用?

答:try…except…except…[else…][finally…]

執(zhí)行try下的語句,如果引發(fā)異常,則執(zhí)行過程會跳到except語句。對每個except分支順序嘗試執(zhí)行,如果引發(fā)的異常與except中的異常組匹配,執(zhí)行相應(yīng)的語句。如果所有的except都不匹配,則異常會傳遞到下一個調(diào)用本代碼的***層try代碼中。

try下的語句正常執(zhí)行,則執(zhí)行else塊代碼。如果發(fā)生異常,就不會執(zhí)行

如果存在finally語句,***總是會執(zhí)行。

8、Python中pass語句的作用是什么?

答:pass語句不會執(zhí)行任何操作,一般作為占位符或者創(chuàng)建占位程序,whileFalse:pass

9、介紹一下Python下range()函數(shù)的用法?

答:列出一組數(shù)據(jù),經(jīng)常用在for  in range()循環(huán)中

10、如何用Python來進(jìn)行查詢和替換一個文本字符串?

答:可以使用re模塊中的sub()函數(shù)或者subn()函數(shù)來進(jìn)行查詢和替換,

格式:sub(replacement, string[,count=0])(replacement是被替換成的文本,string是需要被替換的文本,count是一個可選參數(shù),指***被替換的數(shù)量)

>>> import re  >>>p=re.compile(‘blue|white|red’)  >>>print(p.sub(‘colour’,'blue socks and red shoes’))  colour socks and colourshoes  >>>print(p.sub(‘colour’,'blue socks and red shoes’,count=1))  colour socks and redshoes

subn()方法執(zhí)行的效果跟sub()一樣,不過它會返回一個二維數(shù)組,包括替換后的新的字符串和總共替換的數(shù)量

11、Python里面match()和search()的區(qū)別?

答:re模塊中match(pattern,string[,flags]),檢查string的開頭是否與pattern匹配。

re模塊中research(pattern,string[,flags]),在string搜索pattern的***個匹配值。

>>>print(re.match(‘super’, ‘superstition’).span())  (0, 5)  >>>print(re.match(‘super’, ‘insuperable’))  None  >>>print(re.search(‘super’, ‘superstition’).span())  (0, 5)  >>>print(re.search(‘super’, ‘insuperable’).span())  (2, 7)

12、用Python匹配HTML tag的時候,<.*>和<.*?>有什么區(qū)別?

答:術(shù)語叫貪婪匹配( <.*> )和非貪婪匹配(<.*?> )

例如:

test

<.*> :

test

<.*?> :

13、Python里面如何生成隨機(jī)數(shù)?

答:random模塊

隨機(jī)整數(shù):random.randint(a,b):返回隨機(jī)整數(shù)x,a<=x<=b

random.randrange(start,stop,[,step]):返回一個范圍在(start,stop,step)之間的隨機(jī)整數(shù),不包括結(jié)束值。

隨機(jī)實數(shù):random.random( ):返回0到1之間的浮點(diǎn)數(shù)

random.uniform(a,b):返回指定范圍內(nèi)的浮點(diǎn)數(shù)。

14、有沒有一個工具可以幫助查找python的bug和進(jìn)行靜態(tài)的代碼分析?

答:PyChecker是一個python代碼的靜態(tài)分析工具,它可以幫助查找python代碼的bug, 會對代碼的復(fù)雜度和格式提出警告

Pylint是另外一個工具可以進(jìn)行codingstandard檢查

15、如何在一個function里面設(shè)置一個全局的變量?

答:解決方法是在function的開始插入一個global聲明:

def f()

global x

16、單引號,雙引號,三引號的區(qū)別

答:單引號和雙引號是等效的,如果要換行,需要符號(\),三引號則可以直接換行,并且可以包含注釋

如果要表示Let&rsquo;s go 這個字符串

單引號:s4 = &lsquo;Let\&rsquo;s go&rsquo;

雙引號:s5 = “Let&rsquo;s go”

s6 = &lsquo;I realy like“python”!&rsquo;

這就是單引號和雙引號都可以表示字符串的原因了

感謝各位的閱讀,以上就是“Python工程師有哪些面試真題”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python工程師有哪些面試真題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI