面試題:你為什麼選擇python?
你為什麼選擇python?
答題路線:python的優點(python優缺點),python的應用領域廣(python應用領域)
python優點:
1、簡單: Python的語法非常優雅,沒有大括號,分號等特殊符號,一種極簡主義的設計思想。適合人類閱讀,閱讀一個良好的Python程式就感覺像是在讀英語一樣。Python的這種虛擬碼本質是它最大的優點之一。它使你能夠專注於解決問題而不是去搞明白語言本身。
2、易學: Python入手非常快,學習門檻低。python雖是用c語言寫的,但是它擯棄了c中非常複雜的指標,簡化了python的語法。
3、免費/開源: Python的所有內容都是免費開源的,可以自由地釋出這個軟體的拷貝、閱讀它的原始碼、對它做改動、把它的一部分用於新的自由軟體中。Python希望看到一個更加優秀的人創造並經常改進。
4、自動記憶體管理: Python中記憶體管理是自動完成的,你可以專注於程式本身。
5、可以移植: 由於它的開源本質,Python已經被移植在許多平臺上(經過改動使它能夠工作在不同平臺上)。如果你小心地避免使用依賴於系統的特性,那麼你的所有Python程式無需修改就可以在下述任何平臺上面執行。這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至還有PocketPC、Symbian以及Google基於linux開發的Android平臺!
6、解釋性: 大多數計算機程式語言都是編譯型的,在執行之前需要將原始碼編譯為作業系統可以執行的二進位制格式(0110格式的),這樣大型專案編譯過程非常消耗時間,而Python語言寫的程式不需要編譯成二進位制程式碼。你可以直接從原始碼執行程式。在計算機內部,Python直譯器把原始碼轉換成稱為位元組碼的中間形式,然後再把它翻譯成計算機使用的機器語言並執行。
7、面向物件: Python既支援面向過程的函式程式設計也支援面向物件的抽象程式設計。在面向過程的語言中,程式是由過程或僅僅是可重用程式碼的函式構建起來的。在面向物件的語言中,程式是由資料和功能組合而成的物件構建起來的。與其他主要的語言如C++和Java相比,Python以一種非常強大又簡單的方式實現面向物件程式設計。
8.、可擴充套件性和可嵌入性 : Python除了使用Python本身編寫外,還可以把部分程式用C或C++編寫,然後在你的Python程式中使用它們。你可以把Python嵌入你的C/C++程式,從而向你的程式使用者提供指令碼功能。
9、豐富的第三方庫: Python標準庫很龐大。python有可定義的第三方庫可以使用。它可以幫助你處理各種工作,包括正則表示式、文件生成、單元測試、執行緒、資料庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV檔案、密碼系統、GUI(圖形使用者介面)、Tk和其他與系統有關的操作。記住,只要安裝了Python,所有這些功能都是可用的。這被稱作Python的“功能齊全”理念。除了標準庫以外,還有許多其他高質量的庫,如wxPython、Twisted和Python影象庫等等。
python應用領域廣:
1)Python在系統程式設計中的應用
Python語言在作業系統的內建介面,被稱為Shell工具。Python程式可以搜尋檔案和目錄樹、可以執行其他的應有程式或是用程序或執行緒進行並行處理。Python標準庫綁定了POSIX 以及其他常規作業系統工具。所以環境變數、管道、程序、多執行緒、檔案、套接字、python正則表示式模式匹配、命令列引數、標準流介面、Shell 命令啟動器、file擴充套件等。除此之外很多Python 的系統工具設計時都考慮了其可移植性。
2)Python在網路爬蟲方面的應用
由於Python的網路方面的功能非常強大,常用來實現網路爬蟲。常用框架有:
grab – 網路爬蟲框架(基於pycurl/multicur)。
scrapy – 網路爬蟲框架(基於twisted),不支援Python3。
pyspider – 一個強大的爬蟲系統。
cola – 一個分散式爬蟲框架。
portia – 基於Scrapy的視覺化爬蟲。
restkit – Python的HTTP資源工具包。它可以讓你輕鬆地訪問HTTP資源,並圍繞它建立的物件。
demiurge – 基於PyQuery的爬蟲微框架。
Python在人工智慧、科學計算中的應用
科學運算、人工智慧: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas
3)Python在WEB開發中的應用
Python有眾多優秀的WEB框架,眾多大型網站均為Python開發,Youtube, Dropbox, 豆瓣等等 典型WEB框架有Django、Flask等,享學課堂就是使用Django開發的。
4)Python在系統運維中的應用
Python已經成為,運維人員必備語言,尤其是在Linux運維方面,基本上是自動化運維。
Python在大資料、雲端計算方面的應用
Python是大資料、雲端計算最火的語言, 典型應用OpenStack
5)Python在金融方面的應用
量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作為動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很厲害,生產效率遠遠高於c,c++,java,尤其擅長策略回測。