一、Python可以用來干什么?在我看來,基本上可以不負責任地認為,Python 可以做任何事情。無論是從入門級選手到專業級選手都在做的爬蟲,還是Web 程序開發、桌面程序開發還是科學計算、圖像處理,Python都可以勝任。Python為我們提供了非常完善的基礎代碼庫,覆蓋了網絡、文件、GUI、數據庫、文本等大量內容,被形象地稱作“內置電池(Batteries included)”。用Python開發,許多功能不必從零編寫,直接使用現成的即可。除了內置的庫外,Python還有大量的第三方庫,也就是別人開發的,供你直接使用的東西。當然,如果你開發的代碼通過很好的封裝,也可以作為第三方庫給別人使用。許多大型網站就是用Python開發的,例如YouTube、Instagram,還有國內的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美國航空航天局)都大量地使用Python。龜叔給Python的定位是“優雅”、“明確”、“簡單”,所以Python程序看上去總是簡單易懂,初學者學Python,不但入門容易,而且將來深入下去,可以編寫那些非常非常復雜的程序。總的來說,Python的哲學就是簡單優雅,盡量寫容易看明白的代碼,盡量寫少的代碼。如果一個資深程序員向你炫耀他寫的晦澀難懂、動不動就幾萬行的代碼,你可以盡情地嘲笑他。
Python 可以做什么,這是一個有趣的問題。從入門級選手到專業級選手都在做的——爬蟲用 Python 寫爬蟲的教程網上一抓一大把,據我所知很多初學 Python 的人都是使用它編寫爬蟲程序。小到抓取一個小黃圖網站,大到一個互聯網公司的商業應用。通過 Python 入門爬蟲比較簡單易學,不需要在一開始掌握太多太基礎太底層的知識就可以很快上手,而且很快可以做出成果,非常適合小白一開始想做出點看得見的東西的成就感。除了入門,爬蟲也被廣泛應用到一些需要數據的公司、平臺和組織,通過抓取互聯網上的公開數據,來實現一些商業價值是非常常見的做法。當然這些選手的爬蟲就要厲害的多了,需要處理包括路由、存儲、分布式計算等很多問題,與小白的抓黃圖小程序,復雜度差了很多倍。Web 程序除了爬蟲,Python 也廣泛應用到了 Web 端程序,比如你現在正在使用的知乎,主站后臺就是基于 Python 的 tornado 框架,豆瓣的后臺也是基于 Python。除了 tornado (Tornado Web Server),Python 常用的 Web 框架還有 Flask(Welcome | Flask (A Python Microframework)),Django (The Web framework for perfectionists with deadlines) 等等。通過上述框架,你可以很方便實現一個 Web 程序,比如我認識的一些朋友,就通過 Python 自己編寫了自己的博客程序,包括之前的 zhihu.photo,我就是通過 Flask 實現的后臺(出于版權等原因,我已經停掉了這個網站)。除了上述框架,你也可以嘗試自己實現一個 Web 框架。桌面程序Python 也有很多 UI 庫,你可以很方便地完成一個 GUI 程序(話說我最開始接觸編程的時候,就覺得寫 GUI 好炫酷,不過搞了好久才在 VC6 搞出一個小程序,后來又輾轉 Delphi、Java等,最后接觸到 Python 的時候,我對 GUI 已經不感興趣了)。Python 實現 GUI 的實例也不少,包括大名鼎鼎的 Dropbox,就是 Python 實現的服務器端和客戶端程序。人工智能(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 的開發效率很高,性能要求較高的模塊可以用 C 改寫,Python 調用。同時,Python 可以更高層次的抽象問題,所以在科學計算領域也非常熱門。包括 scipy、numpy 等用于科學計算的第三方庫的出現,更是方便了又一定數學基礎,但是計算機基礎一般的朋友。圖像處理這方面不熟,列幾個關鍵詞吧,如有錯誤,請斧正。keywords : OpenCV, Pillow, PIL
手機瀏覽
全國
19974831731





