從2015開始國內(nèi)就開始慢慢接觸Python了,從16年開始Python就已經(jīng)在國內(nèi)的熱度更高了饥瓷,目前也可以算的上"全民Python"了垦垂。
眾所周知小學(xué)生的教材里面已經(jīng)有Python了,國家二級計算機證也需要學(xué)習(xí)Python了建炫!
因為Python簡單典蜕、入門快断盛,是不少程序員入門的首選語言。
如果你想學(xué)Python愉舔,或者你剛開始學(xué)習(xí)Python钢猛,那么你可能會問:“我能用Python做什么?”這個問題不好回答轩缤,因為Python有很多用途命迈。
但是隨著時間,我發(fā)現(xiàn)有Python主要有以下五大主要應(yīng)用:
一火的、Web開發(fā)
Python的誕生歷史比Web還要早壶愤,由于Python是一種解釋型的腳本語言,開發(fā)效率高馏鹤,所以非常適合用來做Web開發(fā)征椒。
Python有上百種Web開發(fā)框架,有很多成熟的模板技術(shù)湃累,選擇Python開發(fā)Web應(yīng)用陕靠,不但開發(fā)效率高,而且運行速度快脱茉。
常用的web開發(fā)框架有:Django、Flask垄开、Tornado 等琴许。
許多知名的互聯(lián)網(wǎng)企業(yè)將python作為主要開發(fā)語言:豆瓣、知乎溉躲、果殼網(wǎng)榜田、Google、NASA锻梳、YouTube箭券、Facebook……
由于后臺服務(wù)器的通用性,除了狹義的網(wǎng)站之外疑枯,很多App和游戲的服務(wù)器端也同樣用 Python實現(xiàn)辩块。
二、網(wǎng)絡(luò)爬蟲
許多人對編程的熱情始于好奇,終于停滯废亭。
距離真槍實干做開發(fā)有技術(shù)差距国章,也無人指點提帶,也不知當下水平能干嘛豆村?就在這樣的疑惑循環(huán)中液兽,編程技能止步不前,而爬蟲是最好的進階方向之一掌动。
網(wǎng)絡(luò)爬蟲是Python比較常用的一個場景四啰,國際上,google在早期大量地使用Python語言作為網(wǎng)絡(luò)爬蟲的基礎(chǔ)粗恢,帶動了整個Python語言的應(yīng)用發(fā)展柑晒。以前國內(nèi)很多人用采集器搜刮網(wǎng)上的內(nèi)容,現(xiàn)在用Python收集網(wǎng)上的信息比以前容易很多了适滓,如:
從各大網(wǎng)站爬取商品折扣信息敦迄,比較獲取最優(yōu)選擇;
對社交網(wǎng)絡(luò)上發(fā)言進行收集分類凭迹,生成情緒地圖罚屋,分析語言習(xí)慣;
爬取網(wǎng)易云音樂某一類歌曲的所有評論嗅绸,生成詞云脾猛;
按條件篩選獲得豆瓣的電影書籍信息并生成表格……
應(yīng)用實在太多,幾乎每個人學(xué)習(xí)爬蟲之后都能夠通過爬蟲去做一些好玩有趣有用的事鱼鸠。
三猛拴、人工智能
人工智能是現(xiàn)在非常火的一個方向蚀狰,AI熱潮讓Python語言的未來充滿了無限的潛力∮淅ィ現(xiàn)在釋放出來的幾個非常有影響力的AI框架,大多是Python的實現(xiàn)麻蹋,為什么呢跛溉?
因為Python有很多庫很方便做人工智能,比如numpy, scipy做數(shù)值計算的扮授,sklearn做機器學(xué)習(xí)的芳室,pybrain做神經(jīng)網(wǎng)絡(luò)的,matplotlib將數(shù)據(jù)可視化的刹勃。在人工智能大范疇領(lǐng)域內(nèi)的數(shù)據(jù)挖掘堪侯、機器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)荔仁、深度學(xué)習(xí)等方面都是主流的編程語言伍宦,得到廣泛的支持和應(yīng)用芽死。
人工智能的核心算法大部分還是依賴于C/C++的,因為是計算密集型雹拄,需要非常精細的優(yōu)化收奔,還需要GPU、專用硬件之類的接口滓玖,這些都只有C/C++能做到坪哄。
而Python是這些庫的API binding,使用Python是因為CPython的膠水語言特性势篡,要開發(fā)一個其他語言到C/C++的跨語言接口翩肌,Python是最容易的,比其他語言的門檻要低不少禁悠,尤其是使用Cython的時候念祭。
四、數(shù)據(jù)分析
數(shù)據(jù)分析處理方面碍侦,Python有很完備的生態(tài)環(huán)境粱坤。“大數(shù)據(jù)”分析中涉及到的分布式計算瓷产、數(shù)據(jù)可視化站玄、數(shù)據(jù)庫操作等,Python中都有成熟的模塊可以選擇完成其功能濒旦。對于Hadoop-MapReduce和Spark株旷,都可以直接使用Python完成計算邏輯,這無論對于數(shù)據(jù)科學(xué)家還是對于數(shù)據(jù)工程師而言都是十分便利的尔邓。
五晾剖、自動化運維
Python對于服務(wù)器運維而言也有十分重要的用途。由于目前幾乎所有Linux發(fā)行版中都自帶了Python解釋器梯嗽,使用Python腳本進行批量化的文件部署和運行調(diào)整都成了Linux服務(wù)器上很不錯的選擇齿尽。Python中也包含許多方便的工具,從調(diào)控ssh/sftp用的paramiko灯节,到監(jiān)控服務(wù)用的supervisor雕什,再到bazel等構(gòu)建工具,甚至conan等用于C++的包管理工具显晶,Python提供了全方位的工具集合,而在這基礎(chǔ)上壹士,結(jié)合Web磷雇,開發(fā)方便運維的工具會變得十分簡單。
六躏救、Python的其他應(yīng)用舉例
系統(tǒng)編程:? ?提供API唯笙,能方便進行系統(tǒng)維護和管理螟蒸,Linux下標志性語言之一,是很多系統(tǒng)管理員理想的編程工具崩掘。
圖形處理:?? 有PIL七嫌、Tkinter等圖形庫支持,能方便進行圖形處理苞慢。
數(shù)學(xué)處理:?? NumPy擴展提供大量與許多標準數(shù)學(xué)庫的接口诵原。
文本處理:?? Python提供的re模塊能支持正則表達式,還提供SGML挽放,XML分析模塊绍赛,許多程序員利用Python進行XML程序的開發(fā)。
數(shù)據(jù)庫編程:?? 程序員可通過遵循PythonDB-API(數(shù)據(jù)庫應(yīng)用程序編程接口)規(guī)范的模塊與MicrosoftSQLServer辑畦,Oracle吗蚌,Sybase,DB2纯出,MySQL蚯妇、SQLite等數(shù)據(jù)庫通信。Python自帶有一個Gadfly模塊暂筝,提供了一個完整的SQL環(huán)境箩言。
網(wǎng)絡(luò)編程:?? 提供豐富的模塊支持sockets編程,能方便快速地開發(fā)分布式應(yīng)用程序乖杠。很多大規(guī)模軟件開發(fā)計劃例如Zope分扎,Mnet及BitTorrent.Google都在廣泛地使用它。
Web編程:?? 應(yīng)用的開發(fā)語言胧洒,支持最新的XML技術(shù)畏吓。
多媒體應(yīng)用:? ?Python的PyOpenGL模塊封裝了“OpenGL應(yīng)用程序編程接口”,能進行二維和三維圖像處理卫漫。PyGame模塊可用于編寫游戲軟件菲饼。
黑客編程:?? Python有一個hack的庫,內(nèi)置了你熟悉的或不熟悉的函數(shù)列赎,但是缺少成就感宏悦。
學(xué)習(xí)從來不是一個人的事情,要有個相互監(jiān)督的伙伴包吝,工作需要學(xué)習(xí)python或者有興趣學(xué)習(xí)python的伙伴可以私信回復(fù)小編“學(xué)習(xí)” 獲取資料饼煞,一起學(xué)習(xí)
文章部分來源:腳本之家