這一兩年Python在業內大火, 我一直思考原因是為什麼,除了雲計算幫Python帶了一波節奏外,還有沒有其它原因呢?
必然有,我認為還有一個主要原因就是近幾點網際網路創業熱情高漲。
時間就是金錢,大家恨不得今天剛有了idea,明天產品就能上線,產品晚上線一個月,可能戰爭就跟你沒關係了。 因此,一門開發效率極高的語言就此進入開發者眼帘,開發者們因為猶如神助,開發效率不知道比C,Java高到那裡去了,眾多創業公司首選 Python做為開發語言,雖然那些創業公司大多都 失敗了,但是催生起了Python在國內大熱的前戲。從這裡可以看出Python是開發效率較高的一門語言。
雖然Python的開發效率較高,但是早年的Python的運行速度相對於其他語言要慢一些也是被很多程式設計師詬病Python的主要原因,但最近幾年PyPy解釋器在不斷的提高著Python的運行速度 ,通過PyPy運行的程序,在某些場景下速度直接逼近C語言,相信再過幾年,Python的運行速度將不再是問題。另外,由於近些年CPU處理速度的快速發展,程式語言本身的快慢在大多數業務場景下已不再被做為主要考量(除了對響應速度極為敏感的業務,如搜素),因此,可以看出Python在追求運行速度快上也是有所考慮的。
最後一個就是Python的功能,由於環境機制和語言特性,讓Python強大起來是分分鐘的事情,只要會配置源,會配置環境,開發就會變得非常簡單了,這是導致Python大火的另一個主要原因之一,Python的標準庫和第三方庫強大到你無法想像,無論你想從事任何方向的技術編程,你幾乎都能找到相應的庫支持,以下僅舉幾個例子:
1、WEB開發:
最火的Python web框架Django, 支持異步高並發的Tornado框架,短小精悍的flask,bottle, Django官方的標語把Django定義為the framework for perfectionist with deadlines(大意是一個為完全主義者開發的高效率web框架)
2、網絡編程
支持高並發的Twisted網絡框架, py3引入的asyncio使異步編程變的非常簡單
3、爬蟲
爬蟲領域,Python幾乎是霸主地位,ScrapyRequestBeautifuSoap\\\\\\urllib等,想爬啥就爬啥
4、雲計算
目前最火最知名的雲計算框架就是OpenStack,Python現在的火,很大一部分就是因為雲計算
5、人工智慧
誰會成為AI 和大數據時代的第一開發語言?這本已是一個不需要爭論的問題。如果說五年前,Matlab、Scala、R、Java 和 Python還各有機會,局面尚且不清楚,那麼五年之後,趨勢已經非常明確了,特別是前段時間 Facebook 開源了 PyTorch 之後,Python 作為 AI 時代頭牌語言的位置基本確立,未來的懸念僅僅是誰能坐穩第二把交椅。
6、自動化運維
問問中國的每個運維人員,運維人員必須會的語言是什麼?10個人相信會給你一個相同的答案,它的名字叫Python
7、金融分析
我有個朋友之前在金融行業,10年的時候,他們公司寫的好多分析程序、高頻交易軟體就是用的Python,到目前,Python是金融分析、量化交易領域裡用的最多的語言
8、科學運算
你知道麼,97年開始,NASA就在大量使用Python在進行各種複雜的科學運算,隨著NumPy, SciPy, Matplotlib, Enthought librarys等眾多程序庫的開發,使的Python越來越適合於做科學計算、繪製高質量的2D和3D圖像。和科學計算領域最流行的商業軟體Matlab相比,Python是一門通用的程序設計語言,比Matlab所採用的腳本語言的應用範圍更廣泛
9、遊戲開發
在網絡遊戲開發中Python也有很多應用。相比Lua or C++,Python 比 Lua 有更高階的抽象能力,可以用更少的代碼描述遊戲業務邏輯,與 Lua 相比,Python 更適合作為一種 Host 語言,即程序的入口點是在 Python 那一端會比較好,然後用 C/C++ 在非常必要的時候寫一些擴展。Python 非常適合編寫 1 萬行以上的項目,而且能夠很好地把網遊項目的規模控制在 10 萬行代碼以內。另外據我所知,知名的遊戲<文明>就是用Python寫的。
列舉這麼多之後,你會發現,Python幾乎在上述每個領域都做的非常優秀,這是一門真正意義上的全棧語言,即使目前世界上使用最廣泛的Java語言,在很多方面與Python相比也遜色很多!我目前還看不到有哪門語言,能同時在如此多的領域能做出這些成績。所以,大膽來吧,不會錯。
最後小編為大家準備了一些python的學習教程分享,希望可以幫助到大家。
階段一:Python基礎知識和高級特性
1、Python語法基礎
2、Python字符串解析
3、Python時間和日曆
4、Python文件操作
5、Python面向對象
6、並發編程
7、函數式編程
8、正則表達式
9、設計模式
10、排序算法
11、異常
12、模塊
階段二:Linux基礎
1、shell操作
2、系統管理
3、常用Linux命令
4、常見Linux系統
5、HDFS搭建
階段三:資料庫原理和sql優化
1、Linux下MySQL資料庫
2、資料庫設計和SQL標準
3、Python資料庫操作的庫
4、Linux下MongoDB非關係型資料庫
5、SQL優化和資料庫優化
6、ORM對象關係映射基本思想
階段四:前端web開發
1、Html
2、CSS
3、PC端頁面開發實戰流程
4、Bootstrap
5、html5和css3
6、JQuery
階段五:Python Web後端開發
1、Django 框架開發
2、Nginx配置和uWSGI部署
3、RESTful接口開發
4、Flask框架開發
5、電商平台項目
6、BBS論壇系統
階段六:爬蟲和數據分析
1、第一個Python網絡爬蟲
2、專業HTTP分析工具Fiddler的使用
3、實際爬蟲Python編碼問題
4、urllib2 的使用TesseractOCR語言模型爬取使用帶驗證碼登錄的網站
5、Beautiful Soup
6、XPath & CSS選擇器
7、PhantomJS
8、SeleniumWebdriver
9、Scrapy大型框架使用代理伺服器爬取
10、Scrapy分布式集群多代理爬蟲Redis
11、分布式集群Redis MongoDB在爬蟲里的應用
12、數據分析工具與模塊
階段七:Python人工智慧
1、機器學習
3、深度學習