來源:馬哥教育css
連接:https://mp.weixin.qq.com/s/gwZtzuw1QXRIDApSPaIDagpython
Python 的排名從去年開始就藉助人工智能持續上升,如今它已經成爲了第一名。但排在前四名的語言 Python、C、Java 和 C++都擁有廣大的用戶羣體,而且他們的用戶總量也十分相近。實際上,Diakopoulos 在對公司招聘所要求的基本語言分析中,C 語言的需求甚至還要在 Python 以前。ios
下面是平常Python在公司的一些基礎應用:程序員
1、驗證算法:就是對公司一些常見設計算法或者公式的驗證,公式代碼化。web
2、快速開發:這個你們應該都比較熟悉,快速開發,就是用成熟框架,更少的代碼來開發網站,Python在網站先後臺有大量的成熟的框架,如django,flask,bottle,tornado,flask和django的使用較多,國內用Python開發的網站有:知乎、豆瓣、扇貝、騰訊、阿里巴巴;算法
3、測試運維:用python實現的測試工具及過程,包含服務器端、客戶端、web、andriod、client端的自動化測試,自動化性能測試的執行、監控和分析,經常使用selenium appium等
框架。作運維同窗應該清楚,在Linux運維工做中平常操做涵蓋了監控,部署,網絡配置,日誌分析,安全檢測 等等許許多多的方面,無所不包。python能夠寫不少的腳本,把「操做」這個行爲作到極致。與此同時,python在服務器管理工具上很是豐富,配置管理(saltstack) 批量執行( fabric, saltstack) 監控(Zenoss, nagios 插件) 虛擬化管理( python-libvirt) 進程管理 (supervisor) 雲計算(openstack) ...... 還有大部分系統C庫都有python綁定。sql
4、數據分析:Python有三大神器:numpy,scipy,matplotlib,其中numpy不少底層使用C語言實現的,因此速度很快,用它參加各類數學建模大賽,徹底能夠替代r語言和MATLAB。spark,Hadoop都開了Python的接口,因此使用Python作大數據的mapreduce也很是簡單,加上py對數據庫支持都很好,或者相似sqlalchemy的orm也很是強大好用。數據庫
特別是目前,Python在雲基礎設施,DevOps,大數據處理等領域都是煊赫一時的語言。django
領域————————流行語言編程
雲基礎設施————Python, Java, Go
DevOps——Python, Shell, Ruby, Go
網絡爬蟲————Python, PHP, C++
數據處理 Python, R, Scala
雲平臺分爲私有云和公有云。私有云平臺如日中天的OpenStack,就是Python寫的。若是嫌麻煩不想本身搭建私有云,用公有云,不管是AWS,GCE,Azure,仍是阿里雲,青雲,在都提供了Python SDK,其中GCE只提供Python和JavaScript的SDK,而青雲只提供Python SDK。可見各家雲平臺對Python的重視。提到基礎設施搭建,不得不提Hadoop,不少第三方庫封裝了Hadoop的API接口(pydoop,hadoopy等等)。
DevOps
DevOps有個中文名字,叫作開發自運維。互聯網時代,只有可以快速試驗新想法,並在第一時間,安全、可靠的交付業務價值,才能保持競爭力。DevOps推崇的自動化構建/測試/部署,以及系統度量等技術實踐,是互聯網時代必不可少的。
自動化構建是因應用而易的,若是是Python應用,由於有setuptools, pip, virtualenv, tox, flake8等工具的存在,自動化構建很是簡單。並且,由於幾乎全部Linux系統都內置Python解釋器,因此用Python作自動化,不須要系統預安裝什麼軟件。
自動化測試方面,基於Python的Robot Framework企業級應用最喜歡的自動化測試框架,並且和語言無關。Cucumber也有不少支持者,Python對應的Lettuce能夠作到徹底同樣的事情。Locust在自動化性能測試方面也開始受到愈來愈多的關注。
自動化配置管理工具,老牌的如Chef和Puppet,是Ruby開發,目前仍保持着強勁的勢頭。不過,新生代Ansible和SaltStack——均爲Python開發——由於較前二者設計更爲輕量化,受到愈來愈多開發這的歡迎,已經開始給前輩們製造了很多的壓力。
在系統監控與度量方面,傳統的Nagios逐漸沒落,新貴如Sensu大受好評,雲服務形式的New Relic已經成爲創業公司的標配,這些都不是直接經過Python實現的,不過Python要接入這些工具,並不困難。
除了上述這些工具,基於Python,提供完整DevOps功能的PaaS平臺,如Cloudify和Deis,雖未成氣候,但已經獲得大量關注。
網絡爬蟲
網絡爬蟲是Python的傳統強勢領域,最流行的爬蟲框架Scrapy,HTTP工具包urlib2,HTML解析工具beautifulsoup,XML解析器lxml,等等,都是可以獨當一面的類庫。
數據處理
Python也是數據科學家最喜歡的語言之一。和R語言不一樣,Python自己就是一門工程性語言,數據科學家用Python實現的算法,能夠直接用在產品中,這對於大數據初創公司節省成本是很是有幫助的。正式由於數據科學家對Python和R的熱愛,Spark爲了討好數據科學家,對這兩種語言提供了很是好的支持。
對了,還有iPython,這個工具如此有用,iPython Notebook的筆記本文件能夠共享給其餘人。
爲何是Python
正是由於應用開發工程師、運維工程師、數據科學家都喜歡Python,才使得Python成爲大數據系統的全棧式開發語言。
對於開發工程師而言,Python的優雅和簡潔無疑是最大的吸引力,在Python交互式環境中,執行import this,Python社區一直很是有活力,Python的軟件包增加速度一直比較穩定,同時軟件包的質量也相對較高。
對於運維工程師而言,Python的最大優點在於,幾乎全部Linux發行版都內置了Python解釋器。Shell雖然功能強大,但畢竟語法不夠優雅,寫比較複雜的任務會很痛苦。用Python替代Shell,作一些複雜的任務,對運維人員來講,是一次解放。
對於數據科學家而言,Python簡單又不失強大。和C/C++相比,不用作不少的底層工做,能夠快速進行模型驗證;和Java相比,Python語法簡潔,表達能力強,一樣的工做只須要1/3代碼;和Matlab,Octave相比,Python的工程成熟度更高。不止一個編程大牛表達過,Python是最適合做爲大學計算機科學編程課程使用的語言——MIT的計算機入門課程就是使用的Python——由於Python可以讓人學到編程最重要的東西——如何解決問題。
順便提一句,微軟高調宣佈提升Python在Windows上的編程體驗,包括Visual Studio支持Python,優化Python的C擴展在Windows上的編譯等等。腦補下將來Python做爲Windows默認組件的場景。
如此可見Python號稱全棧式語言是確定有道理的。
目前來學的人羣分爲如下幾類:
第一類:入行編程新手:大學剛畢業或者其餘行業轉崗,想從事編程開發的工做,目前認爲Python比較火,想入行;
第二類:Linux系統運維人員:Linux運維以繁雜著稱,對人員系統掌握知識的能力要求很是高,那麼也就須要一個編程語言能解決自動化的問題,Python開發運維工做是首選,Python運維工資的薪資廣泛比Linux運維人員的工資高。
第三類:作數據分析或者人工智能:不論是常見的大數據分析或者通常的金融分析、科學分析都比較大程度的應用了數據分析,人工智能的一些常見應用也使用了Python的一些技術。
第四類:在職程序員轉Python開發:日常只關注div+css這些頁面技術,不少時候其實須要與後端開發人員進行交互的,如今有不少Java程序在轉到Python語言,他們都被Python代碼的優美和開發效率所折服
第五類:其餘:一些工程師之前在作不少SEO優化的時候,苦於不會編程,一些程序上面的問題,得不到解決,只能作作簡單的頁面優化。 如今學會Python以後,能夠編寫一些查詢收錄,排名,自動生成網絡地圖的程序,解決棘手的SEO問題