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