Python是一門腳本語言。因爲能將其餘各類編程語言寫的模塊粘接在一塊兒,也被稱做膠水語言。強大的包容性、強悍的功能和應用的普遍性使其受到愈來愈多的關注,想起一句老話:你若怒放。蝴蝶自來。css
假設你感受學不會?莫慌。小編推薦你們增長羣。
前面516中間107後面834,羣裏有志同道合的小夥伴,
互幫互助。還可以拿到不少視頻教程!html
對於沒有女友打電話噓寒問暖的程序猿同志來講,研究Python大概是填補心裏空虛的一個好選擇,近期就有很是多朋友來找達妹諮詢Python的用途和將來發展方向……前端
那乾脆今天就和你們一塊兒梳理一下Python語言究竟能作哪些事~python
一web
凌亂的桌子和與 Web 的設計理念說明算法
WEB開發數據庫
在國內,豆瓣一開始就使用Python做爲web開發基礎語言,知乎的整個架構也是基於Python語言。這使得web開發這塊在國內發展的很是不錯。編程
雖然眼下Python並不是作Web開發的首選,但一直都佔有不可忽視的一席。Python中有各種Web框架。不論是簡單而可以自由搭配的微框架仍是全功能的大型MVC框架都包羅萬象,這在需要敏捷開發的Web項目中也是十分具備優點的。flask
普遍使用(或曾經普遍使用)Python提供的大型Web服務包括知乎、豆瓣、Dropbox等站點。後端
加之Python自己的「膠水」特性。很是easy實現在需要大規模性能級計算時整合其餘語言。同一時候保留Web開發時的輕便快捷。
使用Python中的Flask搭建一個Web版的Hello world。也僅僅需要幾行而已:
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == '__main__': app.run()
除此以外,Python中還有大量「開箱即用」的模塊,用於與各類其餘站點的對接等相關功能。假設但願開發個微信公衆號相關功能,wechat-sdk/weixin-python等包,可以使你差點兒全然不用管文檔中說起的各類server交互細節,專一於功能實現即能完畢開發。
眼下,國內的Python web開發主要有兩個技術棧:
a、Django
Django是一個高級的敏捷web開發框架,假設學會了。擼一個站點很是快。固然假設純粹比擼站點的速度,基於ruby的Ruby on rails顯然更快。但是Django有一個優點就是性能優秀,更適合國內站點的應用場景。
國外的著名圖片社區Pinterest早期也是基於Django開發的,承受了用戶高速增加的衝擊。因此說假設你想高速開發一個站點。還能兼顧APPclient的API調用需求,Django是可以信賴的。
b、 Flask
相對於Django,Flask則是一個輕量級的web框架。Flask的最大的優點是性能優越,適合配合手機client開發後臺API服務。
國內基於Flask的Restful API服務這快很是火。也是需求最大的。
知名的比方百度、網易、小米、陌陌等等很是多公司都有基於Flask的應用部署。固然,假設你想作一個傳統的web站點,仍是建議使用Django,Flask的優點是後端、API,不適合構建全功能站點。
二
網絡爬蟲
網絡爬蟲是Python比較常用的一個場景,國際上,google在早期大量地使用Python語言做爲網絡爬蟲的基礎。帶動了整個Python語言的應用發展。曾經國內很是多人用採集器搜刮網上的內容。現在用Python收集網上的信息比曾經easy很是多了。
Python在這個方面有不少工具上的積累,不論是用於模擬HTTP請求的Requests、用於HTML DOM解析的PyQuery/BeautifulSoup、用於本身主動化分佈式爬取任務的Scrapy。仍是用於最簡化數據庫訪問的各類ORM,都使得Python成爲數據爬取的首選語言之中的一個。特別是,爬取後的數據分析與計算是Python最爲擅長的領域,很是easy整合。眼下Python比較流行的網絡爬蟲框架是功能很是強大的scrapy。
人工智能現代計算概念
三
人工智能(AI)與機器學習
人工智能是現在很是火的一個方向。AI熱潮讓Python語言的將來充滿了無限的潛力。
現在釋放出來的幾個很是有影響力的AI框架,大可能是Python的實現,爲何呢?
因爲Python足夠動態、具備足夠性能。這是AI技術所需要的技術特色。
比方基於Python的深度學習庫、深度學習方向、機器學習方向、天然語言處理方向的一些站點基本都是經過Python來實現的。
機器學習。尤爲是現在火爆的深度學習,其工具框架大都提供了Python接口。Python在科學計算領域一直有着較好的聲譽,其簡潔清晰的語法以及豐富的計算工具,深受此領域開發人員喜好。
早在深度學習以及Tensorflow等框架流行以前,Python中即有scikit-learn,可以很是方便地完畢差點兒所有機器學習模型,從經典數據集下載到構建模型僅僅需要簡單的幾行代碼。
配合Pandas、matplotlib等工具,能很是簡單地進行調整。
而Tensorflow、PyTorch、MXNet、Keras等深度學習框架更是極大地拓展了機器學習的可能。
使用Keras編寫一個手寫數字識別的深度學習網絡僅僅需要寥寥數十行代碼,就能夠藉助底層實現,方便地調用包括GPU在內的大量資源完畢工做。
值得一提的是,無論什麼框架,Python僅僅是做爲前端描寫敘述用的語言,實際計算則是經過底層的C/C++實現。因爲Python能很是方便地引入和使用C/C++項目和庫。從而實現功能和性能上的擴展,這種大規模計算中,讓開發人員更關注邏輯於數據自己,而從內存分配等繁雜工做中解放出來,是Python被普遍應用到機器學習領域的重要緣由。
四
數據分析處理
數據分析處理方面,Python有很是完備的生態環境。
「大數據」分析中涉及到的分佈式計算、數據可視化、數據庫操做等,Python中都有成熟的模塊可以選擇完畢其功能。
對於Hadoop-MapReduce和Spark,都可以直接使用Python完畢計算邏輯。
這無論對於數據科學家仍是對於數據project師而言都是十分便利的。
當中諸如Seaborn這種可視化庫,可以僅僅使用一兩行就對數據進行畫圖,而利用Pandas和numpy、scipy則可以簡單地對大量數據進行篩選、迴歸等計算。而興許複雜計算中,對接機器學習相關算法,或者提供Web訪問接口,或是實現遠程調用接口,都很是簡單。
import seaborn as sns sns.set() # Load the example tips dataset iris = sns.load_dataset("iris") # Plot tip as a function of toal bill across days g = sns.lmplot(x="sepal_length", y="sepal_width", hue="species", truncate=True, size=5, data=iris) # Use more informative axis labels than are provided by default g.set_axis_labels("Sepal length (mm)", "Sepal width (mm)")
Python在數據分析處理中典型的應用量化交易。簡單來講就是說藉助於強悍的數學模型數據分析來實現利益最大化損失最小化,眼下已經有不少很是好的框架可以使用。
五
server運維及其餘小工具
Python對於server運維而言也有十分重要的用途。因爲眼下差點兒所有Linux發行版中都自帶了Python解釋器,使用Python腳本進行批量化的文件部署和執行調整都成了Linuxserver上很是不錯的選擇。
Python中也包括不少方便的工具。從調控ssh/sftp用的paramiko,到監控服務用的supervisor。再到bazel等構建工具,甚至conan等用於C++的包管理工具,Python提供了全方位的工具集合,而在這基礎上。結合Web。開發方便運維的工具會變得十分簡單。
更有意思的是,Python社區的開發人員們還製做了諸如itchat這種開發工具包,你大可以用微信來管理server或是各類服務的執行。想一想看。一個微信機器人。可以在出現異常時。又或者天天固定時刻彙報server或是程序執行狀況。甚至包括用matplotlib/seaborn繪製的圖表,一目瞭然。而你對它發上簡簡單單一句話。就能夠完畢對server的調整。
六
桌面程序
除此以外,Python也可以用於桌面軟件開發(如sublime text等)。甚至移動端開發(參看kivy)。Python簡潔方便。各類工具包齊全的環境。能大幅度下降開發人員的負擔。
著名的UI框架QT有Python語言的實現版本號PyQT。Python簡單易用的特性加上QT的優雅。可以很是輕鬆的開發界面複雜的桌面程序,並且能輕鬆實現跨平臺特性。
七
多媒體應用
可以用Python裏面的PIL、Piddle、ReportLab 等模塊對圖象、聲音、視頻、動畫等進行處理,還可以用Python生成動態圖表和統計分析圖表。另外。還可以利用PyOpenGl模塊很是高速有效的編寫出三維場景。
曾經爲「阿貝斯(Abyss)」、「星際迷航(Star Trek)」、「Indiana Jones」等超級大片製做過特技和動畫的工業光魔公司(Industrial Light)就採用Python進行商業動畫製做。然而在很是早曾經,Python就是一種遊戲編程的輔助工具,在《星球大戰》的製做中扮演了重要的角色,現在,全然可以經過Python寫出很是棒的遊戲程序。
Emmmmm這個舉例不會暴露年齡吧……
最後。但願對Python感興趣的朋友都能成爲學霸和學神!