Python面試應急5分鐘!

pythontab發表於2018-08-23

不論你是初入江湖,還是江湖老手,只要你想給自己一個定位那就少不了面試!面試的重要性相信大家都知道把,這就是我們常說的“第一印象”,給大家說一下我的面試心得把,面試前的緊張是要的,因為這能讓你充分準備。面試時的緊張是絕對要避開的,因為這可能導致你不能充分展現自己,說不定塑普都出來了。


  分享個笑話舒緩一下:公司程式設計師要跳槽,老闆不答應,後來,他拔了伺服器的硬碟後跑了;公司保安要跳槽,老闆不答應,後來,他帶著公司的大門鑰匙跑了;公司保潔阿姨要跳槽,老闆不答應,後來,她在老闆抽屜裡放一隻大蟑螂跑了;公司人事要跳槽,老闆不答應,後來,她給自己辦了離職手續跑了。不扯了,如果你正準備面試就看下面把。


1)什麼是Python?使用Python有什麼好處?


Python是一種程式語言,包含物件,模組,執行緒,異常和自動記憶體管理。蟒蛇的好處在於它簡單易用,可移植,可擴充套件,內建資料結構,並且它是一個開源的。


2)什麼是PEP 8?


PEP 8是一個編碼約定,一組推薦,關於如何編寫Python程式碼更具可讀性。


3)什麼是酸洗和去除?


Pickle模組接受任何Python物件並將其轉換為字串表示形式,並使用dump函式將其轉儲到檔案中,此過程稱為pickling。從儲存的字串表示中檢索原始Python物件的過程稱為unpickling。


4)如何解釋Python?


Python語言是一種解釋語言。Python程式直接從原始碼執行。它將程式設計師編寫的原始碼轉換為中間語言,再次轉換為必須執行的機器語言。


5)如何在Python中管理記憶體?


Python記憶體由Python私有堆空間管理。所有Python物件和資料結構都位於私有堆中。程式設計師無權訪問此私有堆,直譯器負責處理此私有堆。

Python物件的Python堆空間分配由Python記憶體管理器完成。核心API提供了一些程式設計師編寫程式碼的工具。

Python還有一個內建的垃圾收集器,它可以回收所有未使用的記憶體並釋放記憶體並使其可用於堆空間。

6)有哪些工具可以幫助查詢錯誤或執行靜態分析?


PyChecker是一個靜態分析工具,可以檢測Python原始碼中的錯誤,並警告錯誤的風格和複雜性。Pylint是另一種驗證模組是否符合編碼標準的工具。


7)什麼是Python裝飾器?


Python裝飾器是我們在Python語法中進行的一項特定更改,可以輕鬆地更改函式。


8)list和tuple有什麼區別?


列表和元組之間的區別在於列表是可變的而元組不是。元組可以被雜湊為例如作為字典的關鍵。


9)引數如何透過值或引用傳遞?


Python中的所有內容都是一個物件,所有變數都包含物件的引用。參考值根據功能; 因此,您無法更改引用的值。但是,如果物件是可變的,則可以更改它們。


10)Dict和List理解是什麼?


它們是語法結構,可以根據現有的iterable輕鬆建立Dictionary或List。


11)python提供的內建型別是什麼?


有可變和不可變型別的Pythons以Mutable內建型別構建


名單

字典

不可變的內建型別


字串

元組

數字

12)Python中的名稱空間是什麼?


在Python中,引入的每個名稱都有一個存在的地方,並且可以被掛鉤。這稱為名稱空間。它就像一個框,其中變數名稱對映到放置的物件。每當搜尋到變數時,將搜尋此框以獲取相應的物件。


13)Python中的lambda是什麼?


它是一個單獨的表示式匿名函式,通常用作行內函數。


14)為什麼python中的lambda表單沒有語句?


python中的lambda表單沒有語句,因為它用於建立新的函式物件,然後在執行時返回它們。


15)什麼是Python傳遞?


透過意味著,無操作的Python語句,或者換句話說,它是複合語句中的佔位符,其中應該留有空白,不必在那裡寫入任何內容。


16)在Python中什麼是迭代器?


在Python中,迭代器用於迭代一組元素,如列表之類的容器。


17)什麼是Python中的單元測試?


Python中的單元測試框架稱為unittest。它支援共享設定,自動化測試,測試關閉程式碼,將測試聚合到集合等。


18)在Python中切片是什麼?


從序列型別(如列表,元組,字串等)中選擇一系列專案的機制稱為切片。


19)Python中的生成器是什麼?


實現迭代器的方法稱為生成器。這是一個正常的函式,除了它在函式中產生表示式。


20)Python中的docstring是什麼?


Python文件字串稱為docstring,它是一種記錄Python函式,模組和類的方法。


21)如何在Python中複製物件?


要在Python中複製物件,可以嘗試copy.copy()或copy.deepcopy()來處理一般情況。您無法複製所有物件,但大多數物件都是如此。


22)Python中的負面索引是什麼?


Python序列可以是正數和負數的索引。對於正索引,0是第一個索引,1是第二個索引,依此類推。對於負索引,( - 1)是最後一個索引,( - 2)是倒數第二個索引,依此類推。


23)如何將數字轉換為字串?


要將數字轉換為字串,請使用內建函式str()。如果需要八進位制或十六進位制表示,請使用內建函式oct()或hex()。


24)Xrange和範圍有什麼區別?


Xrange返回xrange物件,而range返回列表,並使用相同的記憶體,無論範圍大小是多少。


25)Python中的模組和包是什麼?


在Python中,模組是構造程式的方式。每個Python程式檔案都是一個模組,它匯入其他模組,如物件和屬性。


Python程式的資料夾是一個模組包。包可以包含模組或子資料夾。


26)提到Python中區域性變數和全域性變數的規則是什麼?


區域性變數:如果在函式體內的任何位置為變數分配了一個新值,則假定它是本地的。


全域性變數:僅在函式內引用的變數是隱式全域性變數。


27)如何跨模組共享全域性變數?


要在單個程式中跨模組共享全域性變數,請建立一個特殊模組。在應用程式的所有模組中匯入配置模組。該模組將作為跨模組的全域性變數提供。


28)解釋如何在Unix上建立Python指令碼?


要在Unix上使Python指令碼可執行,您需要做兩件事,


指令碼檔案的模式必須是可執行的

第一行必須以#開頭(#!/ usr / local / bin / python)

 


29)解釋如何在Python中刪除檔案?


使用命令os.remove(filename)或os.unlink(filename)


30)解釋如何在Python中生成隨機數?


要在Python中生成隨機數,您需要將命令匯入為


隨機匯入


random.random()


這將返回[0,1]範圍內的隨機浮點數


31)解釋如何從C訪問用Python編寫的模組?


您可以透過以下方法訪問C中用Python編寫的模組,


Module = = PyImport_ImportModule(“<modulename>”);


32)提到在Python中使用//運算子?


它是一個Floor Divisionoperator,用於分割兩個運算元,結果為商,只顯示小數點前的數字。例如,10 // 5 = 2和10.0 // 5.0 = 2.0。


33)提到使用Python的五大好處?


Python包含一個巨大的標準庫,適用於大多數Internet平臺,如電子郵件,HTML等。

Python不需要顯式記憶體管理,因為直譯器本身會將記憶體分配給新變數並自動釋放它們

由於使用方括號,因此易於閱讀

易於學習的初學者

擁有內建資料型別可以節省程式設計時間和工作量,從而宣告變數

34)提到 在Python中使用split函式?


在Python中使用split函式是使用定義的分隔符將字串分解為更短的字串。它給出了字串中存在的所有單詞的列表。


35)解釋什麼是Flask及其好處?


Flask是基於“Werkzeug,Jinja 2和良好意圖”BSD許可的Python的Web微框架。Werkzeug和jingja是它的兩個依賴。


Flask是微框架的一部分。這意味著它對外部庫幾乎沒有依賴性。它使框架變得輕盈,同時幾乎沒有更新的依賴性和更少的安全性錯誤。


36)提到Django,Pyramid和Flask之間有什麼區別?


Flask是一個“微框架”,主要用於具有更簡單要求的小型應用程式。在燒瓶中,您必須使用外部庫。Flask已準備好使用。


金字塔是為更大的應用程式構建的。它提供了靈活性,並允許開發人員為他們的專案使用正確的工具。開發人員可以選擇資料庫,URL結構,模板樣式等。金字塔很重要。


像Pyramid一樣,Django也可以用於更大的應用程式。它包括一個ORM。


37)提到什麼是Flask-WTF以及它們的特點是什麼?


Flask-WTF提供與WTForms的簡單整合。功能包括Flask WTF


與wtforms整合

使用csrf令牌保護表單

全球csrf保護

國際化整合

Recaptcha支援

檔案上傳適用於Flask Uploads

38)解釋Flask指令碼工作的常用方法是什麼?


燒瓶指令碼工作的常用方法是


它應該是您的應用程式的匯入路徑

或Python檔案的路徑

39)解釋如何在Flask中訪問會話?


會話基本上允許您記住從一個請求到另一個請求的資訊。在燒瓶中,它使用簽名cookie,以便使用者可以檢視會話內容並進行修改。如果只有金鑰Flask.secret_key,則使用者可以修改會話。


40)Flask是一個MVC模型,如果是,給出一個示例顯示您的應用程式的MVC模式?


基本上,Flask是一個簡約框架,其行為與MVC框架相同。所以MVC非常適合Flask,MVC的模式我們將考慮以下示例




41)解釋Python Flask中的資料庫連線?


Flask支援資料庫驅動的應用程式(RDBS)。這樣的系統需要建立一個模式,這需要將shema.sql檔案傳遞給sqlite3命令。因此,您需要安裝sqlite3命令才能在Flask中建立或啟動資料庫。


Flask允許以三種方式請求資料庫


before_request():在請求之前呼叫它們並且不傳遞任何引數

after_request():在請求後呼叫它們並傳遞將傳送到客戶端的響應

teardown_request():在引發異常時呼叫它們,並且不保證響應。在構建響應之後呼叫它們。不允許它們修改請求,並忽略它們的值。

42)你有多個執行Python的Memcache伺服器,其中一個memcacher伺服器出現故障,它有你的資料,是否會嘗試從那個故障伺服器獲取關鍵資料?


故障伺服器中的資料不會被刪除,但有一個自動故障的規定,您可以為多個節點配置。可以在任何型別的套接字或Memcached伺服器級別錯誤期間觸發故障轉移,而不是在正常的客戶端錯誤(如新增現有金鑰等)期間觸發。


43)解釋如何最小化Python開發中的Memcached伺服器中斷?


當一個例項發生故障時,其中一些例項出現故障,當客戶端發出請求時重新載入丟失的資料時,這會給資料庫伺服器帶來更大的負載。為避免這種情況,如果您的程式碼已編寫為最小化快取標記,那麼它將產生最小的影響

另一種方法是使用丟失的機器IP地址在新機器上調出Memcached例項

程式碼是最小化伺服器中斷的另一個選項,因為它使您可以自由地以最少的工作更改Memcached伺服器列表

設定超時值是某些Memcached客戶端為Memcached伺服器中斷實現的另一個選項。當Memcached伺服器出現故障時,客戶端將繼續嘗試傳送請求,直到達到超時限制

44)解釋什麼是Dogpile效應?你怎麼能防止這種影響?


當快取過期時,Dogpile效應被稱為事件,並且網站被客戶端同時發出的多個請求所擊中。使用訊號量鎖可以防止這種影響。在此係統中,當值到期時,第一個程式獲取鎖並開始生成新值。


45)解釋如何在Python專案中不使用Memcached?


Memcached常見的誤用是將其用作資料儲存,而不是快取

切勿使用Memcached作為執行應用程式所需資訊的唯一來源。資料也應始終透過其他來源提供

Memcached只是一個鍵或值儲存,不能對資料執行查詢或迭代內容以提取資訊

Memcached在加密或身份驗證方面不提供任何形式的安全性

以上就是面試可能會問到的技術性的問題啦,希望能幫助到需要的小夥伴!同時,想要學習Python的或者是有問題需要一起探討的都歡迎大家進群一起交流: 425851955 ,有需要學習資料的也可以進來。


相關文章