1. 程式人生 > >Python程式設計師面試必備常用問題答案及解析

Python程式設計師面試必備常用問題答案及解析

在公佈《Python軌範員面試,這些問題你必需提早預備!》一文後,應泛博軌範員伴侶的強烈要求,小編就Python軌範員面試必備問題清算了一份參考謎底,希望能對預備換工作的軌範員伴侶有所輔佐。如對謎底有疑問,接待留言會談。

小編將這些面試問題大抵分為四類:

什麼(what)?若何做(how)?說區別/談上風(difference)以及理論把持(practice)。

What?

1. 什麼是Python?

Python是一種程式設計說話,它有工具、模組、執行緒、非常措置和主動記憶體辦理。可以參加與其他說話的比力。下面是回覆這一問題的幾個關頭點:

a.Python是一種詮釋型說話,python程式碼在運轉之前不必要編譯。

b.Python是動態型別說話,在宣告變數時,不必要聲名變數的型別。

c.Python合適面向工具的程式設計,由於它支撐經由過程組合與擔當的編制界說類。

d.在Python說話中,函式是第一類工具。

e.Python程式碼編寫快,可是運轉速度比編譯說話通常要慢。

f.Python用處遍及,常被用作“膠水說話”,可輔佐其他說話和元件改善運轉狀態。

g.使用Python,軌範員可以專注於演算法和資料構造的設計,而不消措置底層的細節。

2. 什麼是Python自省?

python自省是python具有的一種才能,使軌範員面向工具的說話所寫的軌範在運轉時,可以獲得工具的類python型。Python是一種詮釋型說話。為軌範員供給了極大的矯捷性和節制力。在這裡相信有許多想要學習Python的同學,大家可以+下Python學習分享裙:叄零肆+零伍零+柒玖玖,即可免費領取一整套系統的 Python學習教程!

3. 什麼是PEP 8?

PEP8是一種程式設計標準,內容是一些關於若何讓你的軌範更具可讀性的建議。

4. 什麼是pickling和unpickling?

Pickle模組讀入任何Python工具,將它們轉換成字串,然後使用dump函式將其轉儲到一個檔案中——這個過程叫做pickling。反之從儲存的字串檔案中提取原始Python工具的過程,叫做unpickling。

5. 什麼是Python裝飾器?

Python裝飾器是Python中的特有變換,可以使改削函式變得更隨意。

6. 什麼是Python的名稱空間?

在Python中,所有的名字都存在於一個空間中,它們在該空間中存在和被把持——這就是名稱空間。它就彷彿一個盒子,每一個變數名字都對應裝著一個工具。當查詢變數的時辰,會從該盒子裡面探求相應的工具。

7. 什麼是字典推導式和列表推導式?

它們是可以輕鬆建樹字典和列表的語法構造。

8. Lambda函式是什麼?

這是一個常被用於程式碼中的單個表示式的匿名函式。

9. *args,**kwargs?引數是什麼?

若是我們不確定要往函式中傳入若干好多個引數,或者我們想往函式中以列表和元組的情勢傳引數時,那就使要用*args;若是我們不曉得要往函式中傳入若干好多個關頭詞引數,或者想傳入字典的值作為關頭詞引數時,那就要使用**kwargs。

10. 什麼是Pass語句?

Pass是一個在Python中不會被實行的語句。在複雜語句中,若是一個地方必要且則被留白,它經常被用於佔位符。

11. unittest是什麼?

在Python中,unittest是Python中的單位測試框架。它擁有支撐共享搭建、主動測試、在測試中停息程式碼、將不合測試迭代成一組,等等的功能。

11. 機關器是什麼?

機關器是實現迭代器的一種機制。它功能的實現依靠於yield表示式,除此之外它跟通俗的函式沒有兩樣。

12. doc string是什麼?

Python中文件字串被稱為docstring,它在Python中的浸染是為函式、模組和類解釋生成文件。

13. 負索引是什麼?

Python中的序列索引可所以正也可所以負。若是是正索引,0是序列中的第一個索引,1是第二個索引。若是是負索引,(-1)是末了一個索引而(-2)是倒數第二個索引。

14. 模組和包是什麼?

在Python中,模組是搭建軌範的一種編制。每一個Python程式碼檔案都是一個模組,並可以引用其他的模組,比如工具和屬性。

一個包含良多Python程式碼的資料夾是一個包。一個包可以包含模組和子資料夾。

15. 垃圾收受接收是什麼?

在Python中,為體味決記憶體洩漏問題,接納了工具引用計數,並基於引用計數實現主動垃圾收受接收。

16. CSRF是什麼?

CSRF是偽造客戶端哀求的一種鞭撻打擊,CSRF的英文全稱是Cross Site Request Forgery,字面上的意思是跨站點偽造哀求。

How?

1. 若何讓你的軌範更具可讀性?

恰本地參加非前導空格,恰當的空行以及同等的命名。

2. Python是若何被詮釋的?

Python是一種詮釋性說話,它的原始碼可以直接運轉。Python詮釋器會將原始碼轉換成中心說話,之後再翻譯成機械碼再實行。

3. 若安在Python中拷貝一個工具?

若是要在Python中拷貝一個工具,大多時辰你可以用copy.copy或者copy.deepcopy。但並不是所有的工具都可以被拷貝。

4. 若何用Python刪除一個檔案?

使用函式os.remove("file")

5. 若何將一個數字轉換成一個字串?

你可以使用自帶函式str將一個數字轉換為字串。若是你想要八進位制或者十六進位制數,可以用oct或hex。

6. Python是若何停止記憶體辦理的?

Python的記憶體辦理是由私有heap空間辦理的。所有的Python工具和資料構造都在一個私有heap中。軌範員沒有訪謁該heap的許可權,只需詮釋器才能對它停止把持。為Python的heap空間分配記憶體是由Python的記憶體辦理模組停止的,其焦點API會供給一些訪謁該模組的編制供軌範員使用。Python有自帶的垃圾收受接收體系,它收受接收並釋放沒有被使用的記憶體,讓它們可以被其他軌範使用。在這裡相信有許多想要學習Python的同學,大家可以+下Python學習分享裙:叄零肆+零伍零+柒玖玖,即可免費領取一整套系統的 Python學習教程

7. 若何實現tuple和list的轉換?

以list作為引數將tuple類初始化,將前往tuple型別

以tuple作為引數將list類初始化,將前往list型別

8. Python裡面若何生成隨機數?

在python中用於生成隨機數的模組是random,在使用前必要import. 如下例子可以酌情列舉:

random.random:生成一個0-1之間的隨機浮點數

random.uniform(a, b):生成[a,b]之間的浮點數

random.randint(a, b):生成[a,b]之間的整數

random.randrange(a, b, step):在指定的集結[a,b)中,以step為基數隨機取一個數

random.choice(sequence):從特定序列中隨機取一個元素,這裡的序列可所以字串,列表,元組等

9. 若安在一個function裡面設定一個全域性的變數

若是要給全域性變數在一個函式裡賦值,必需使用global語句。global VarName的表示式會告訴Python, VarName是一個全域性變數,如許Python就不會在區域性名稱空間裡探求這個變量了

10. Python若何實現單例形式?其他23種設計形式python若何實現?

單例形式首要有四種編制:__new__、共享屬性、裝飾器、import。

其他23種設計形式可根基分為建樹型、構外型和舉動型形式。

建示範式,供給例項化的編制,為合適的狀態供給相應的工具建樹編制。

構造化形式,通常用來措置實體之間的關係,使得這些實體可以更好地協同工作。

舉動形式,用於在不合的實體建停止通訊,為實體之間的通訊供給更隨意,更矯捷的通訊編制。

各形式的實現可按照其特點編寫程式碼(限於篇幅,這裡不做示例)

11. 若何斷定單向連結串列中是否有環

首先遍歷連結串列,探求是否有不異地點,藉此斷定連結串列中是否有環。若是軌範進入死輪迴,則必要一塊空間來儲存指標,遍歷新指標時將其和儲存的舊指標比對,若有不異指標,則該連結串列有環,不然將這個新指標存下來後繼續往下讀取,直到碰見NULL,這聲名這個連結串列無環。

12. 若何遍歷一個內部未知的資料夾?

常用的有以下這幾種方法:os.path.walk,os.walk,listdir

13. mysql資料庫若何分割槽、分表?

分表可以經由過程三種編制:mysql叢集、自界說軌則和merge儲存引擎。

分割槽有四類:

RANGE 分割槽:基於屬於一個給定連續區間的列值,把多行分配給分割槽。

LIST 分割槽:近似於按RANGE分割槽,區別在於LIST分割槽是基於列值婚配一個離散值集結中的某個值來停止選擇。

HASH分割槽:基於使用者界說的表示式的前往值來停止選擇的分割槽,該表示式使用將要插入到表中的這些行的列值停止計較。這個函式可以包含MySQL 中有效的、產生非負整數值的任何表示式。

KEY 分割槽:近似於按HASH分割槽,區別在於KEY分割槽只支撐計較一列或多列,且MySQL 辦事器供給其本身的雜湊函式。必需有一列或多列包含整數值。

14. 若何對查詢呼籲停止優化?

a.應儘量按捺全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索。

b.應儘量按捺在 where 子句中對欄位停止 null 值斷定,按捺使用!=或<>把持符,按捺使用 or 毗連前提,或在where子句中使用引數、對欄位停止表示式或函式把持,不然會導致權標掃描

c.不要在 where 子句中的“=”右邊停止函式、算術運算或其他表示式運算,不然體系將可能無法精確使用索引。

d.使用索引欄位作為前提時,若是該索引是複合索引,那麼必需使用到該索引中的第一個欄位作為前提時才能保證體系使用該索引,不然該索引將不會被使用。

e.良多時辰可考慮用 exists 庖代 in

f.儘量使用數字型欄位

g.儘可能的使用 varchar/nvarchar 庖代 char/nchar

h.任何地方都不要使用 select * from t ,器詳細的欄位列表庖代“*”,不要前往用不到的任何欄位。

i.儘量使用表變數來庖代姑且表。

j.按捺頻仍建樹和刪除姑且表,以減少體系表資源的耗損。

k.儘量按捺使用遊標,由於遊標的服從較差。

l.在所有的儲存過程和觸發器的起頭處設定 SET NOCOUNT ON ,在竣事時設定 SET NOCOUNT OFF

m.儘量按捺大事務把持,進步體系併發才能。

n.儘量按捺向客戶端前往大資料量,若資料量過大,應該考慮相應需求是否合理。

15. 若何理解開源?

開源,即開放原始碼。開源降生於軟體行業,它不僅僅代表軟體原始碼的開放,本身即意味著自由、共享和充實把持資源。開源是一種精神,是一種文化,如今已經成為軟體業生長的局勢所趨。

16. 若何理解MVC/MTV框架?

MVC就是把Web應用分為模子(M),節制器(C)和檢視(V)三層,他們之間以一種外掛式的、鬆耦合的編制毗連在一起。MTV形式本質上和MVC是一樣的,也是為了各元件間保持鬆耦合關係,只是界說上有些許不合。

17. MSSQL的死鎖是若何產生的?

如下是死鎖產生的四個必要前提:

互斥前提:指歷程對所分配到的資源停止排它性使用,即在一段時辰內某資源只由一個歷程佔用。若是此時還有其它歷程哀求資源,則哀求者只能等待,直至據有資源的歷程用畢釋放。

請乞降保持前提:指歷程已經保持至少一個資源,但又提出了新的資源哀求,而該資源已被其它歷程據有,此時哀求歷程梗阻,但又對本身已獲得的其它資源保持不放。

不剝奪前提:指歷程已獲得的資源,在未使用完之前,不能被剝奪,只能在使用完時由本身釋放。

環路等待前提:指在發死活鎖時,必定存在一個歷程——資源的環形鏈,即歷程集結{P0,P1,P2,···,Pn}中的P0正在等待一個P1佔用的資源;P1正在等待P2佔用的資源,……,Pn正在等待已被P0佔用的資源。

18. Sql注入是若何產生的,若何防止?

軌範開發過程中不注意標準書寫sql語句和對不凡字元停止過濾,導致客戶端可以經由過程全域性變數POST和GET提交一些sql語句正常實行。產生Sql注入。下面是防止方法:

a.過濾掉一些常見的資料庫把持關頭字,或者經由過程體系函式來停止過濾。

b.在PHP設定裝備安排檔案中將Register_globals=off;設定為封鎖狀態

c.SQL語句書寫的時辰儘量不要省略短序號(tab鍵上面阿誰)和單引號

d.進步資料庫命名技巧,對付一些重要的欄位按照軌範的特點命名,取不易被猜到的

e.對付常用的編制加以封裝,按捺直接暴漏SQL語句

f.開啟PHP安然形式:Safe_mode=on;

g.翻開magic_quotes_gpc來防止SQL注入

h.節制錯誤資訊:封鎖錯誤提示資訊,將錯誤資訊寫到體系日誌。

i.使用mysqli或pdo預措置。

19. xxs若何防備?

XSS裂痕難以檢測,可是為了WEB安然仍必要死力按捺:

針對反射型和儲存型XSS,必要辦事端和前端配合防備,針對使用者輸入的資料做解析和轉義,對付前端開發而言,則是擅長使用escape,針對data URI內容做正則斷定,避免使用者輸入非表示資訊。

對付DOM XSS,由於形成XSS的緣故緣由在於使用者的輸入,是以在前端,必要特別注意使用者輸入源,並對可能形成的XSS的把持必要停止字串轉義。

20. 若何生成共享祕鑰? 若何提防中心人鞭撻打擊?

金鑰的生成是經由過程使用全域性設定裝備安排呼籲完成的:對付不成輸出金鑰是。標識表記標幟(label)是可選擇的;若是沒有指定標識表記標幟,那麼金鑰名稱將是hostname.domain-name。

對付中心人的鞭撻打擊,可以接納如下提防手段:

a.經由過程接納動態ARP檢測、DHCP Snooping等節制把持來加強蒐集根本舉措步伐

b.接納傳輸加密

c.使用CASBs(雲訪謁安然代庖署理)

d.建樹RASP(實時應用軌範自我呵護)

e.攔阻自簽名證書

f.強迫使用SSL pinning

g.安裝DAM(資料庫勾當監控)

21. 若何辦理不合版本的程式碼?

停止版本辦理。可舉例奉告若何使用Git(或是其他工具)停止追蹤。

Difference

1. 陣列和元組之間的區別?

陣列在python中叫作列表。列表可以改削,而元組不成以改削,若是元組中僅有一個元素,則要在元素後加上逗號。元組和列表的查詢編制一樣。元組只可讀不成改削,若是軌範中的資料不容許改削可用元組。

2. _new_和_init_的區別?

__init__是當例項工具建樹完成後被挪用的,然後設定工具屬性的一些初始值。

__new__是在例項建樹之前被挪用的,由於它的使命就是建樹例項然後前往該例項,是個靜態編制。

也就是,__new__在__init__之前被挪用,__new__的前往值(例項)將通報給__init__編制的第一個引數,然後__init__給這個例項設定一些引數。

3. Python中單下劃線和雙下劃綫的區別?

"單下劃線" 起頭的成員變數叫做呵護變數,意思是隻需類工具和子類工具本身能訪謁到這些變數;

"雙下劃線" 起頭的是私有成員,意思是隻需類工具本身能訪謁,連子類工具也不能訪謁到這個資料。

4. 淺拷貝與深拷貝的區別是?

在python中,工具賦值實際上是工具的引用。淺拷貝,沒有拷貝子工具,所以原始資料改變,子工具會改變,而深拷貝,包含工具裡面的自工具的拷貝,所以原始工具的改變不會形成深拷貝里任何子元素的改變。

5. 使用裝飾器的單例和使用其他編制的單例,在後續使用中,有何區別?

Import編制改變了類本身,new編制,可是隻是把所有例項工具共享屬性,每次產生一個新工具。算作偽單例,共享屬性編制例項化了良多個不異屬性。所以,裝飾器編制最為適用。

6. 多歷程與多執行緒的區別?

a.簡而言之,一個軌範至少有一個歷程,一個歷程至少有一個執行緒。

b.執行緒的劃分標準小於歷程,使得多執行緒軌範的併發性高。

c.別的,歷程在實行過程中擁有獨立的記憶體單位,而多個執行緒共享記憶體,從而極大地進步了軌範的運轉服從。

d.執行緒在實行過程中與歷程仍是有區別的。每個獨立的執行緒有一個軌範運轉的進口、挨次實行序列和軌範的出口。可是執行緒不能夠獨立實行,必需依存在應用軌範中,由應用軌範供給多個執行緒實行節制。

e.從邏輯角度來看,多執行緒的意義在於一個應用軌範中,有多個實行區域性可以同時實行。但把持體系並沒有將多個執行緒看做多個獨立的應用,來實現歷程的排程和辦理以及本錢分配。這就是歷程和執行緒的重要區別。

7. select和epoll的區別?

a.select實現必要本身不竭輪詢所有fd集結,直到裝置停當,時代可能要睡眠和叫醒屢次交替。而epoll其實也必要挪用epoll_wait不竭輪詢停當連結串列,時代也可能屢次睡眠和叫醒交替,可是它是裝置停其時,挪用回撥函式,把停當fd放入停當連結串列中,並叫醒在epoll_wait中進入睡眠的歷程。雖然都要睡眠和交替,可是select在“醒著”的時辰要遍歷整個fd集結,而epoll在“醒著”的時辰只需斷定一下停當連結串列是否為空就行了,這節約了大量的CPU時辰。

b.select每次挪用都要把fd集結從使用者態往核心態拷貝一次,並且要把current往裝置等待行列中掛一次,而epoll只需一次拷貝,並且把current往等待行列上掛也只掛一次(在epoll_wait的起頭,注意這裡的等待行列並不是裝置等待行列,只是一個epoll內部界說的等待行列)。這也能節約不少的開銷。

8. TCP和UDP的區別?邊緣觸發和程度觸發的區別?

a.根基區別:

基於毗連與無毗連

TCP要求體系資源較多,UDP較少;

UDP軌範構造較簡單

流形式(TCP)與資料報形式(UDP);

TCP保證資料精確性,UDP可能丟包

TCP保證資料挨次,UDP不保證

b.程式設計中的區別

socket的引數不合

UDP Server不必要挪用listen和accept

UDP收發資料用sendto/recvfrom函式

TCP:地點資訊在connect/accept時確定

UDP:在sendto/recvfrom函式中每次均 需指定地點資訊

UDP:shutdown函式無效

9. HTTP毗連:get和post的區別?

GET哀求,哀求的資料會附加在URL之後,以?朋分URL和傳輸資料,多個引數用&毗連。URL的編碼名目接納的是ASCII編碼,而不是uniclde,便是說所有的非ASCII字元都要編碼之後再傳輸。

POST哀求:POST哀求會把哀求的資料放置在HTTP哀求包的包體中。上面的item=bandsaw就是實際的傳輸資料。

是以,GET哀求的資料會吐露在地點欄中,而POST哀求則不會。

10. varchar與char的區別?

char 長度是固定的,不管你儲存的資料是若干好多他都市都固定的長度。而varchar則處可變長度但他要在總長度上加1字元,這個用來儲存位置。所以在措置速度上char要比varchar快速良多,可是對費儲存空間,所以對儲存不大,但在速度上有要求的可以使用char型別,反之可以用varchar型別。

11. BTree索引和hash索引的區別?

Hash 索引因其構造的不凡性,其檢索服從很是高,索引的檢索可以一次定位,不像B-Tree 索引必要從根節點到枝節點,末了才能訪謁到頁節點如許屢次的IO訪謁,所以 Hash 索引的查詢服從要遠高於 B-Tree 索引。但也有如下較著的錯誤錯誤:

a.Hash 索引僅僅能滿足"=","IN"和"<=>"查詢,不能使用規模查詢。

b.Hash 索引無法被用來按捺資料的排序把持。

c.Hash 索引不能把持區域性索引鍵查詢。

d.Hash 索引在任何時辰都不能按捺表掃描。

e.Hash 索引碰著大量Hash值相稱的情形後機能並不必定就會比B-Tree索引高。

12. primary key和unique的區別?

a.作為Primary Key的域/域組不能為null,而Unique Key可以。

b.在一個表中只能有一個Primary Key,而多個Unique Key可以同時存在。

C.邏輯設計上講,Primary Key一樣平常在邏輯設計中用作記實標識,這也是設定Primary Key的本來意圖,而Unique Key只是為了保證域/域組的獨一性。

13. ecb和cbc形式有什麼區別?

ECB:是一種根本的加密編制,密文被朋分身分組長度相稱的塊(不夠補齊),然後零丁一個個加密,一個個輸出構成密文。

CBC:是一種輪迴形式,前一個分組的密文和當前分組的明文異或把持後再加密,如許做的目的是加強破解難度。ECB和CBC的加密成效是不一樣的,兩者的形式不合,並且CBC會在第一個密碼塊運算時參加一個初始化向量。

14. 對稱加密與非對稱加密的區別?

對稱加密,必要對加密息爭密使用不異金鑰的加密演算法。由於其速度快,對稱性加密通常在訊息傳送方必要加密大量資料時使用。所以,對稱性加密也稱為金鑰加密。

而非對稱加密演算法必要兩個金鑰:公開金鑰和私有金鑰。公開金鑰與私有金鑰是一對,若是用公開金鑰對資料停止加密,只需效對應的私有金鑰才能解密;若是用私有金鑰對資料停止加密,那麼只需效對應的公開金鑰才能解密。

15. Xrange和range的區別?

range([start,] stop[, step]),按照start與stop指定的規模以及step設定的步長,生成一個序列。xrange 用法與 range 完全不異,所不合的是生成的不是一個list工具,而是一個生成器。要生成很大的數字序列的時辰,用xrange會比range機能精良多,由於不必要一上來就斥地一塊很大的記憶體空間。range會直接生成一個list工具,而xrange則不會直接生成一個list,而是每次挪用前往其中的一個值。

16. os與sys模組的區別?

前者供給了一種便當的使用把持體系函式的編制。後者供給訪謁由詮釋器使用或維護的變數和與詮釋器停止互動的函式。

17. NoSQL和關係資料庫的區別?

a.SQL資料存在特定構造的表中;而NoSQL則加倍矯捷和可擴充套件,儲存編制可以省是JSON文件、雜湊表或者其他編制。

b.在SQL中,必需界說好表和欄位構造後才能新增資料,例如界說表的主鍵(primary key),索引(index),觸發器(trigger),儲存過程(stored procedure)等。表構造可以在被界說之後更新,可是若是有鬥勁大的構造變換的話就會變得鬥勁複雜。在NoSQL中,資料可以在任何時辰任何地方新增,不必要先界說表。

c.SQL中若是必要新增外部聯絡關係資料的話,標準化做法是在原表中新增一個外來鍵,聯絡關係外部資料表。而在NoSQL中除了這種標準化的外部資料表做法以外,我們還能用如下的非標準化編制把外部資料直接放到原資料集中,以進步查詢服從。錯誤錯誤也鬥勁較著,更新稽核人資料的時辰將會鬥勁費事。

d.SQL中可以使用JOIN錶鏈接編制將多個關係資料表中的資料用一條簡單的查詢語句查詢出來。NoSQL暫未供給近似JOIN的查詢編制對多個數據集中的資料做查詢。所以大區域性NoSQL使用非標準化的資料儲存編制儲存資料。

e.SQL中不容許刪除已經被使用的外部資料,而NoSQL中則沒有這種強耦合的概念,可以隨時刪除任何資料。

f.SQL中若是多張表資料必要同批次被更新,即若是其中一張表更新失敗的話其他表也不能更新成功。這種場景可以經由過程事務來節制,可以在所有呼籲完成後再統一提交事務。而NoSQL中沒有事務這個概念,每一個數據集的把持都是原子級的。

g. 在不異程度的體系設計的前提下,由於NoSQL中省略了JOIN查詢的耗損,故理論上機能上是優於SQL的。

Practice

這種理論把持類問題問題鬥勁豐盛多樣,如下幾類鬥勁常見:

1. 填補缺失的程式碼

例如:


def print_directory_contents(sPath):

import os

for sChild in os.listdir(sPath):

sChildPath = os.path.join(sPath,sChild)

if os.path.isdir(sChildPath):

print_directory_contents(sChildPath)

else:

print sChildPath

2. 下面這段程式碼的輸出成效是什麼?請詮釋。

例如:


list1 = [10, 'a']list2 = [123]list3 = [10, 'a']

新的預設列表只在函式被界說的那一刻建樹一次。當extendList被沒有指定特定引數list挪用時,這組list的值隨後將被使用。這是由於帶有預設引數的表示式在函式被界說的時辰被計較,不是在挪用的時辰被計較。

3. 下面的程式碼可以運轉麼?請詮釋?

例如:


可以運轉。當key缺失機,實行DefaultDict類,字典的例項將主動例項化這個數列。

4. 將函式按照實行服從凹凸排序,並證明本身的謎底是精確的。

例如:


按實行服從從高到低列舉:f2、f1和f3。要證明這個謎底是精確的,你應該曉得若何分析本身程式碼的機能。Python中有一個很好的軌範分析包,可以滿足這個需求。


以上就是小編清算的Python面試常用問題和參考謎底,供泛博Python軌範員參考,希望能供給一點助力。如對區域性問題有疑問,可以留言。預祝每位Python軌範員都能早日拿到抱負的offer!

若是大師感受這份質料對您有效,費事給小編點個贊,並轉給用得著的同窗、同事,今後小編將會更有動力給大師奉獻更多的乾貨!

-END-