您好,登錄后才能下訂單哦!
好程序員Python教程分享常見的Python面試題,程序員面試難免會(huì)需要進(jìn)行筆試,筆試是考驗(yàn)程序員基礎(chǔ)功底的重要環(huán)節(jié),根據(jù)很多小伙伴的面試反饋,今天總結(jié)分享了一些常見的Python面試題,想要看Python面試是不是可以順利通過,這些常見的Python面試題你應(yīng)該看看。
1、大數(shù)據(jù)的文件讀取
①利用生成器generator
?、诘鬟M(jìn)行迭代遍歷:forlineinfile
2、迭代器和生成器的區(qū)別
1)迭代器是一個(gè)更抽象的概念,任何對(duì)象,如果它的類有next方法和iter方法返回自己本身。對(duì)于string、list、dict、tuple等這類容器對(duì)象,使用for循環(huán)遍歷是很方便的。在后臺(tái)for語句對(duì)容器對(duì)象調(diào)用iter()函數(shù),iter()是python的內(nèi)置函數(shù)。iter()會(huì)返回一個(gè)定義了next()方法的迭代器對(duì)象,它在容器中逐個(gè)訪問容器內(nèi)元素,next()也是python的內(nèi)置函數(shù)。在沒有后續(xù)元素時(shí),next()會(huì)拋出一個(gè)StopIteration異常。
2)生成器(Generator)是創(chuàng)建迭代器的簡(jiǎn)單而強(qiáng)大的工具。它們寫起來就像是正規(guī)的函數(shù),只是在需要返回?cái)?shù)據(jù)的時(shí)候使用yield語句。每次next()被調(diào)用時(shí),生成器會(huì)返回它脫離的位置(它記憶語句最后一次執(zhí)行的位置和所有的數(shù)據(jù)值)。
區(qū)別:生成器能做到迭代器能做的所有事,而且因?yàn)樽詣?dòng)創(chuàng)建了__iter__()和next()方法,生成器顯得特別簡(jiǎn)潔,而且生成器也是高效的,使用生成器表達(dá)式取代列表解析可以同時(shí)節(jié)省內(nèi)存。除了創(chuàng)建和保存程序狀態(tài)的自動(dòng)方法,當(dāng)發(fā)生器終結(jié)時(shí),還會(huì)自動(dòng)拋出StopIteration異常。
?
3、裝飾器的作用和功能:
引入日志、函數(shù)執(zhí)行時(shí)間統(tǒng)計(jì)、執(zhí)行函數(shù)前預(yù)備處理、執(zhí)行函數(shù)后的清理功能、權(quán)限校驗(yàn)等場(chǎng)景、緩存。
?
4、如何提高python的運(yùn)行效率
使用生成器;關(guān)鍵代碼使用外部功能包(Cython,pylnlne,pypy,pyrex);針對(duì)循環(huán)的優(yōu)化--盡量避免在循環(huán)中訪問變量的屬性。
?
5、Python中的yield用法
yield簡(jiǎn)單說來就是一個(gè)生成器,這樣函數(shù)它記住上次返回時(shí)在函數(shù)體中的位置。對(duì)生成器第二次(或n次)調(diào)用跳轉(zhuǎn)至該函次)調(diào)用跳轉(zhuǎn)至該函數(shù)。
?
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。