說起程式設計語言, Python 也許不是使用最廣的, 但一定是現在被談論最多的。 隨著近年大資料、人工智慧的興起, Python 越來越多的出現在人們的視野中。
那麼人們在談論 Python 的時候究竟在談論什麼?Python 的實際應用場景有哪些?這裡給大家簡單做一個介紹:
Web 應用開發
在因大資料、人工智慧為人所熟知之前, Python 就已經在 Web 開發領域被廣泛使用, 產生了Django、Flask、Tornado等 Web 開發框架。 得益於其簡潔的語法和動態語言特性, Python 的開發效率很高, 因而深受創業團隊的青睞。
一些將 Python 作為主要開發語言的知名互聯網企業/產品:
豆瓣
知乎
果殼網
Quora
Dropbox
由於後臺伺服器的通用性,
自動化運維
在 Web 開發領域, Python 只是眾多語言選擇之一;但在自動化運維領域, Python 則是必備技能。 靈活的功能和豐富的類庫使其成為運維工程師的首選語言。 大量自動化運維工具和平臺或以 Python 開發, 或提供 Python 的配置介面。 單從Linux內置 Python 這一點來看也足見其在伺服器和運維領域的地位。
因此很多公司雖然核心業務不是使用 Python, 但在管理系統、運維等方面也大量使用。 比如Facebook工程師維護了上千個 Python 專案, 包括基礎設施管理、廣告 API 等。
網路爬蟲
也叫網路蜘蛛, 是指從互聯網採集資料的程式腳本。 對於很多資料相關公司來說, 爬蟲和反爬蟲技術都是其賴以生存的重要保障。
這個星球上最大的“爬蟲”公司 --Google一直力推 Python, 不僅在公司內部大量使用 Python, 也為開發社區做了巨大貢獻。 就連 Python 之父Guido van Rossum也曾在 Google 工作七年。
資料分析
當通過爬蟲獲取了海量資料之後, 需要對資料進行清洗、去重、存儲、展示、分析, 在這方面 Python 有許多優秀的類庫:NumPy、Pandas、Matplotlib可以讓你的資料分析工作事半功倍。
科學計算
雖然 Matlab 在科學計算領域有著不可取代的地位, 但 Python 作為一門通用的程式設計語言, 可以帶來更廣泛的應用和更豐富的類庫。 NumPy、SciPy、BioPython、SunPy 等類庫在生物資訊、地理資訊、數學、物理、化學、建築等領域發揮著重要作用。
而大名鼎鼎的NASA也早已把 Python 作為主要開發語言。
人工智慧
Python 在人工智慧大範疇領域內的資料採擷、機器學習、神經網路、深度學習等方面都是主流的程式設計語言, 得到廣泛的支援和應用。
機器學習:Scikit-learn
自然語言處理:NLTK
深度學習:Theano、Keras、Google 的 TensorFlow、Facebook 的 PyTorch、Amazon 的 MxNet
這些已經佔據業內主流的工具要麼是用 Python 開發, 要麼也提供了 Python 版本。 Python 無疑已成為 AI 領域的必修語言。
膠水語言
Python 簡潔、靈活、通用, 幾乎可以在各種場景與各種平臺、設備、語言進行連接, 因此被稱為膠水語言。 有人把它比作小巧而又多功能的瑞士軍刀。 除了上面提到的, 在其他領域也常常見到 Python 的身影:
金融:大量金融分析和量化交易工具使用 Python 作為的開發指令碼語言
遊戲:一些引擎使用 Python 作為開發腳本, 比較有名的遊戲有《文明》系列、網易的《陰陽師》
桌面應用:雖然不算主流, 但 PyQT、wxPython、Tkinter 等 GUI 庫也足以應付一般的桌面程式
在各家公司裡, Python 還常被用來做快速原型開發, 以便更快驗證產品概念。 而眾多極客也把 Python 作為實現自己天馬行空想法的神兵利器。 在知乎上就有一個問題:
可以用 Python 程式設計語言做哪些神奇好玩的事情?
裡面 200 多個回答將會讓你大開眼界。
有著如此廣泛的應用, 再加上簡單易懂的語法, 使得 Python 成為一門既適合初學, 又值得深入的語言。 即使不是程式師, 能用 Python 寫上一小段程式, 調用幾個介面, 也能極大提升工作效率。 所以連 C++ 大牛Bruce Eckel也要感歎:
Life is short, you need Python
人生苦短, 你需要 Python
由此來看, Python 越來越熱也是情理之中的事情。