鏈客,專爲開發者而生,有問必答!python
此文章來自區塊鏈技術社區,未經容許拒絕轉載。面試
做爲一個 Python 新手,你必須熟悉基礎知識。在本文中咱們將討論一些 Python 面試的基礎問題和高級問題以及答案,以幫助你完成面試。包括 Python 開發問題、編程問題、數據結構問題、和 Python 腳本問題。讓咱們來深刻研究這些問題。express
Python 面試問題編程
Q.1. Python 的特色和優勢是什麼?cookie
Python 能夠做爲編程的入門語言,由於他具有如下特質:數據結構
實際上 Python 的優勢遠不止這些,更詳細的介紹能夠閱讀 Introduction to Python( https://data-flair.training/b...多線程
Q.2. 深拷貝和淺拷貝的區別是什麼?框架
深拷貝是將對象自己複製給另外一個對象。這意味着若是對對象的副本進行更改時不會影響原對象。在 Python 中,咱們使用 deepcopy()函數進行深拷貝,使用方法以下:函數
深拷貝-Python 面試問題及答案工具
淺拷貝是將對象的引用複製給另外一個對象。所以,若是咱們在副本中進行更改,則會影響原對象。使用 copy()函數進行淺拷貝,使用方法以下:
淺拷貝-Python 面試問題及答案
Q.3. 列表和元祖有什麼不一樣?
主要區別在於列表是可變的,元祖是不可變的。看下面的例子:
會出現如下錯誤提示:
TypeError: ‘tuple’ object does not support item assignment
關於列表和元祖的更多內容參考 Tuples vs Lists( https://data-flair.training/b...
Q.4 到 Q.20 是新手常常會被問到的一些 Python 基礎題,有經驗的人也能夠參考這些問題來複習這些概念。
Q.4. 解釋 Python 中的三元表達式
與 C++不一樣, 在 Python 中咱們不須要使用 ? 符號,而是使用以下語法:
[on true] if [expression]else [on false]
若是 [expression] 爲真, 則 [on true] 部分被執行。若是表示爲假則 [on false] 部分被執行
下面是例子:
2
Hi
Q.5. Python 中如何實現多線程?
線程是輕量級的進程,多線程容許一次執行多個線程。衆所周知,Python 是一種多線程語言,它有一個多線程包。
GIL(全局解釋器鎖)確保一次執行單個線程。一個線程保存 GIL 並在將其傳遞給下一個線程以前執行一些操做,這就產生了並行執行的錯覺。但實際上,只是線程輪流在 CPU 上。固然,全部傳遞都會增長執行的開銷。
Q.6. 解釋繼承
一個類繼承自另外一個類,也能夠說是一個孩子類/派生類/子類,繼承自父類/基類/超類,同時獲取全部的類成員(屬性和方法)。
繼承使咱們能夠重用代碼,而且還能夠更方便地建立和維護代碼。Python 支持如下類型的繼承:
關於繼承的更多內容參考 Python Inheritance( https://data-flair.training/b...
Q.7. 什麼是 Flask?
Flask 是一個使用 Python 編寫的輕量級 Web 應用框架,使用 BSD 受權。其 WSGI 工具箱採用 Werkzeug,模板引擎則使用 Jinja2。除了 Werkzeug 和 Jinja2 之外幾乎不依賴任何外部庫。由於 Flask 被稱爲輕量級框架。
Flask 的會話會話使用簽名 cookie 來容許用戶查看和修改會話內容。它會記錄從一個請求到另外一個請求的信息。但若是要修改會話,則必須有密鑰 Flask.secret_key。
咱們將在後續的課程中進一步討論 Flask。
Q.8. 如何在 Python 中管理內存?
Python 用一個私有堆內存空間來放置全部對象和數據結構,咱們沒法訪問它。由解釋器來管理它。不過使用一些核心 API,咱們能夠訪問一些 Python 內存管理工具控制內存分配。
Q.9. 解釋 Python 中的 help() 函數和 dir() 函數。
help() 函數返回幫助文檔和參數說明:
運行結果以下:
Help on function copy in module copy
copy(x)
Shallow copy operation on arbitrary Python objects.
See the module』s doc string for more info.
dir() 函數返回對象中的全部成員 (任何類型)
Q.10. 當退出 Python 時是否釋放全部內存分配?
答案是否認的。那些具備對象循環引用或者全局命名空間引用的變量,在 Python 退出是每每不會被釋放
另外不會釋放 C 庫保留的部份內容。
Q.11. 什麼是猴子補丁?
在運行時動態修改類和模塊
Hi, monkey
Q.12. 什麼是 Python 字典?
字典是我在 C++和 Java 中沒有見過的數據結構,它擁有鍵-值對
3
字典是可變的,咱們也能夠用推導式的方式建立它.
{25: 5, 16: 4, 9: 3, 4: 2, 1: 1}
要了解更多字典的內容請點擊 Python Dictionaries( https://data-flair.training/b...
Q.13. 可否解釋一下 args 和 *kwargs?
若是咱們不知道將多少個參數傳遞給函數,好比當咱們想傳遞一個列表或一個元組值時,就可使用*args。
3
2
1
4
7
當咱們不知道將會傳入多少關鍵字參數時,使用**kwargs 會收集關鍵字參數。
使用 args 和 kwargs 做爲參數名只是舉例,能夠任意替換。
對於 Python 的基礎題任何疑問,請在評論區提問。
Q.14. 編程實現計算文件中的大寫字母數
26
Q.15. 什麼是負索引?
咱們先建立以下列表:
與正索引不一樣......
......