Python作為人工智能知識(shí)的基礎(chǔ)知識(shí),加上有許多公司都在招python方面的程序員,那么小編在這里整理了一些Python最常見(jiàn)的面試題。在python基礎(chǔ)中,很明顯我們需要了解python的特性,像面向?qū)ο笏枷?,字符串的操作,推?dǎo)式,實(shí)例化,多線程多進(jìn)程以及初始化這些都是必須了解的。
在python中,如何交換兩個(gè)變量的值 |
這個(gè)問(wèn)題,考了python特殊的語(yǔ)法,也就是a, b = b, a,這個(gè)表達(dá)式,也是其他語(yǔ)言所沒(méi)有的,是只有python自帶的。
字符串的拼接–如何高效的拼接兩個(gè)字符串 |
我們都知道python中,拼接字符串可以用”+”來(lái)拼接,然而這個(gè)方法并不是高效的,因?yàn)槿绻枰唇拥淖址泻芏?n個(gè))的情況下,使用”+”的話,python解釋器會(huì)申請(qǐng)n-1次內(nèi)存空間,然后進(jìn)行拷貝,因?yàn)樽址趐ython中是不可變的,所以當(dāng)進(jìn)行拼接的時(shí)候,會(huì)需要申請(qǐng)一個(gè)新的內(nèi)存空間。所以,正確答案是,使用.join(list),因?yàn)樗皇褂昧艘淮蝺?nèi)存空間。
如何復(fù)制Python中的對(duì)象 |
要在Python中復(fù)制對(duì)象,一般情況下可以嘗試copy.copy()或copy.deepcopy()。不能復(fù)制所有的對(duì)象,但大多數(shù)還是可以的。
Python 中如何實(shí)現(xiàn)多線程 |
線程是輕量級(jí)的進(jìn)程,多線程允許一次執(zhí)行多個(gè)線程。眾所周知,Python 是一種多線程語(yǔ)言,它有一個(gè)多線程包。
GIL(全局解釋器鎖)確保一次執(zhí)行單個(gè)線程。一個(gè)線程保存 GIL 并在將其傳遞給下一個(gè)線程之前執(zhí)行一些操作,這就產(chǎn)生了并行執(zhí)行的錯(cuò)覺(jué)。但實(shí)際上,只是線程輪流在 CPU 上。當(dāng)然,所有傳遞都會(huì)增加執(zhí)行的開(kāi)銷(xiāo)。
python中深淺拷貝的區(qū)別 |
淺拷貝沒(méi)有拷貝子對(duì)象,所以原對(duì)象發(fā)生改變,其子對(duì)象也發(fā)生了改變,而深拷貝拷貝了子對(duì)象,原對(duì)象發(fā)生改變,其本身也不會(huì)改變。
解釋如何在Unix上創(chuàng)建一個(gè)Python腳本可執(zhí)行文件 |
要在Unix上創(chuàng)建Python腳本可執(zhí)行文件需要做兩件事情:
Script文件的模式必須是可執(zhí)行的
第一行必須以#(#!/ usr / local / bin / python)開(kāi)頭
如何在 Python 中管理內(nèi)存 |
Python 用一個(gè)私有堆內(nèi)存空間來(lái)放置所有對(duì)象和數(shù)據(jù)結(jié)構(gòu),我們無(wú)法訪問(wèn)它。由解釋器來(lái)管理它。不過(guò)使用一些核心 API,我們可以訪問(wèn)一些 Python 內(nèi)存管理工具控制內(nèi)存分配。
類(lèi)的初始化:new() 和 init() |
new()方法用來(lái)實(shí)例化最終的類(lèi)對(duì)象,在類(lèi)創(chuàng)建之前被調(diào)用,它在類(lèi)的主體被執(zhí)行完后開(kāi)始執(zhí)行。
init()方法是在類(lèi)被創(chuàng)建之后被調(diào)用,用來(lái)執(zhí)行其他的一些輸出化工作
當(dāng)我們構(gòu)造元類(lèi)的時(shí)候,通常只需要定一個(gè)init()或new()方法,但不是兩個(gè)都定義。但是,如果需要接受其他的關(guān)鍵詞參數(shù)的話,這兩個(gè)方法就要同時(shí)提供,并且都要提供對(duì)應(yīng)的參數(shù)簽名。
簡(jiǎn)單說(shuō)明在Python中如何使用split函數(shù) |
在Python中使用split函數(shù)是使用定義的分隔符將字符串分解成更短的字符串。它給出了字符串中所有單詞的列表。
給定一串排好序的列表,打亂這個(gè)函數(shù) |
這個(gè)題考了python里的shuffle函數(shù)的用法。
給定一串字典(或列表),找出指定的(前N個(gè))最大值?最小值 |
這道題的考點(diǎn)是python內(nèi)的heapq模塊的nlargest() 和 nsmallest(), 而不是min()和max()。這兩個(gè)函數(shù)都能接收關(guān)鍵字參數(shù),用于復(fù)雜的結(jié)構(gòu)數(shù)據(jù)中:
Python 區(qū)分大小寫(xiě)嗎 |
驗(yàn)證 Python 是否區(qū)分大小寫(xiě)的方法是測(cè)試 myname 和 Myname 在程序中是不是算同一個(gè)標(biāo)識(shí)符。觀察以下代碼的返回結(jié)果:
Myname
NameError: name ‘Myname’ is not defined
如你所見(jiàn),這里出現(xiàn)了 NameError,所以 Python 是區(qū)分大小的語(yǔ)言。
實(shí)現(xiàn)一個(gè)斐波那契數(shù)列的生成器 |
這道題的考點(diǎn)關(guān)鍵是生成器的yield關(guān)鍵字將一個(gè)普通函數(shù)改造成生成器函數(shù):
使用字符串拼接達(dá)到字幕滾動(dòng)效果 |
Python 中標(biāo)識(shí)符的命名規(guī)則 |
Python 中的標(biāo)識(shí)符可以是任意長(zhǎng)度,但必須遵循以下命名規(guī)則:
1. 只能以下劃線或者 A-Z/a-z 中的字母開(kāi)頭。
2. 其余部分只能使用 A-Z/a-z/0-9。
3. Python 標(biāo)識(shí)符區(qū)分大小寫(xiě)。
4. 關(guān)鍵字不能作為標(biāo)識(shí)符。Python 有以下這些關(guān)鍵字:
-
人工智能
+關(guān)注
關(guān)注
1805文章
48898瀏覽量
247843 -
字符
+關(guān)注
關(guān)注
0文章
235瀏覽量
25533 -
python
+關(guān)注
關(guān)注
56文章
4825瀏覽量
86444
原文標(biāo)題:“搞定”面試官,最常見(jiàn)的Python面試題(文末資料大禮包)
文章出處:【微信號(hào):elecfans,微信公眾號(hào):電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
常見(jiàn)的嵌入式C語(yǔ)言面試題
C/C++程序員應(yīng)聘常見(jiàn)面試題深入解析
視頻教程:Java常見(jiàn)面試題目深度解析!
FPGA/集成電路 筆試面試題解答
互聯(lián)網(wǎng)公司Python的16道經(jīng)典面試題
Python的一些經(jīng)典面試題資料合集免費(fèi)下載

評(píng)論