Python居然被用來開發(fā)游戲了?盤點(diǎn)你想不到的Python開發(fā)場景
都說學(xué) Python 好,好在哪?Python 可以用來做什么?
當(dāng) YouTube、 Quora、 Pinterest、 Facebook、 Reddit、 Instagram、 Google、 Netflix 和 Spotify 等流行服務(wù)開始使用這種語言時(shí),Python 已經(jīng)成為軟件開發(fā)者最喜歡的新語言。
除了我們熟悉的數(shù)據(jù)科學(xué),Python 甚至現(xiàn)在還被用來開發(fā)游戲,下面我們就來盤點(diǎn)一下Python 正在被應(yīng)用在哪些開發(fā)場景中。
1.數(shù)據(jù)處理
首先當(dāng)然是我們熟知的數(shù)據(jù)分析。隨著數(shù)據(jù)的不斷增長,真正的挑戰(zhàn)在于如何理解這些信息。企業(yè)和組織正在嘗試通過使用數(shù)據(jù)科學(xué)、數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)的概念和方法構(gòu)建智能系統(tǒng)來解決這個(gè)問題。
當(dāng)我們需要機(jī)器來做出有效的基于數(shù)據(jù)的決策時(shí),可能會(huì)出現(xiàn)幾種情況。以下是機(jī)器學(xué)習(xí)比人類更為有效的一些場景:
- 缺乏人類經(jīng)驗(yàn);
- 動(dòng)態(tài)場景;
- 將專業(yè)知識(shí)轉(zhuǎn)化為計(jì)算任務(wù)。
近年來,Python 越來越多地被用于科學(xué)和商業(yè)領(lǐng)域的數(shù)據(jù)分析。語言的簡單,以及各種各樣的開放源碼庫,使得開發(fā)人員可以研究任何主題,并根據(jù)收到的結(jié)果得出結(jié)論。
例如,他們使用 Python 來分析傳播到世界各地的冠狀病毒、一周中不同日子的銷售動(dòng)態(tài)以及不同大學(xué)中學(xué)生的表現(xiàn)等。下面一些可以使用 Python 進(jìn)行數(shù)據(jù)分析的其他的例子:
- 情感分析
- 天氣預(yù)報(bào)
- 股票市場分析
- 客戶細(xì)分
- 發(fā)現(xiàn)和預(yù)防欺詐
- 為客戶推薦產(chǎn)品
Python 還可以有效地應(yīng)用于數(shù)據(jù)數(shù)據(jù)可視化,這是數(shù)據(jù)科學(xué)家工作的重要組成部分。數(shù)據(jù)可視化數(shù)據(jù)庫幫助你以一種簡單而直觀的方式展示大型而復(fù)雜的數(shù)據(jù)集。
Matplotlib 是一個(gè)非常受歡迎的用 Python 編寫的數(shù)據(jù)可視化庫。通過使用這個(gè)工具,你可以輕松地構(gòu)建漂亮的圖表、直方圖、條形圖、框形圖等。
2. Web 開發(fā)
Python 在 Web 開發(fā)中也是廣受歡迎,Python 作為一種非常方便的語言——它不進(jìn)行編譯,在啟動(dòng)之前看起來像一個(gè)純文本文件。此外,它需要較少的代碼,看起來幾乎像普通的英語句子。
有許多用 Python 進(jìn)行 Web 開發(fā)的框架,其中一些不僅簡化了開發(fā)過程,還提供了一些工具,可以讓你在幾天內(nèi)完成一個(gè)網(wǎng)站。這類框架屬于“全堆?!?,它們還提供許多工具,包括所有需要的東西。例如:
- Django ——一個(gè)為快速高效開發(fā)而設(shè)計(jì)的高級(jí)框架。Django 的主要原則是 DRY 和快速開發(fā),鼓勵(lì)代碼的重用,比如 Instagram、 Spotify 等;
- Pyramid ——這個(gè)框架適用于任何規(guī)模的項(xiàng)目。對(duì)于創(chuàng)建復(fù)雜的應(yīng)用程序或擴(kuò)展小站點(diǎn)以增加負(fù)載(Substance-D,Easy Blog Networks) ,它具有非常實(shí)用的特性;
- TurboGears ——一個(gè)用于快速開發(fā)數(shù)據(jù)驅(qū)動(dòng)應(yīng)用程序的開源框架 (Apache Allura, Kamisons);
- Flask —— 這是一個(gè) WSGI 框架,可以構(gòu)建簡單或復(fù)雜的平臺(tái)。它與第三方庫兼容,并且有許多擴(kuò)展(Netflix、 Lyft);
- Tornado ——一個(gè)能夠同時(shí)支持多個(gè)用戶連接的異步框架。它非常適合需要與每個(gè)用戶建立長期連接的任務(wù) (Uploadcare) 。
當(dāng)然,這些只是最流行的框架。還有些更靈活,有些更容易使用的框架,有些適合小型項(xiàng)目,而有些則更適合大型項(xiàng)目。但是,所有這些都簡化了開發(fā)過程,并允許你創(chuàng)建項(xiàng)目,而不是再通過創(chuàng)建數(shù)據(jù)庫接口或發(fā)出解析請(qǐng)求。
3. 游戲腳本開發(fā)
也許你想象不到,Python 也因一些大型游戲項(xiàng)目而受到歡迎。下面的游戲已經(jīng)部分用這種語言開發(fā)了:
- 文明4
- 坦克世界
- 模擬人生4
- 戰(zhàn)地2
- EVE Online.
如何在游戲中使用 Python?
一般來說用 Python 開發(fā)游戲主要用于編寫啟動(dòng)場景、人物交互和游戲事件的腳本。一些開發(fā)者甚至設(shè)法將其改編為圖形界面。
Python 通常用于寫程序原型,然后這些程序會(huì)用其他語言重新編寫。這是非常方便的,因?yàn)閯?chuàng)建這樣的原型非???,它也有助于更清楚地了解程序如何運(yùn)作。Python 可以作為原型設(shè)計(jì)工具用于所有大型項(xiàng)目,但是最終版本呢?
如果你的項(xiàng)目不應(yīng)用機(jī)器學(xué)習(xí),并且加載速度是至關(guān)重要的,那么 Python 幾乎沒有用武之地。但是,經(jīng)常實(shí)踐不同語言的混合,例如 Python 和 C++ 。這種方法允許實(shí)現(xiàn)高開發(fā)速度和程序執(zhí)行速度。雖然大部分代碼是用 Python 編寫的,但 C++ 適用于那些影響執(zhí)行速度的部分。
4. 手機(jī) App 開發(fā)
直到最近,安卓應(yīng)用程序幾乎沒有用 Python 的。然而,世界各地的許多愛好者都在努力將這種主要用于網(wǎng)絡(luò)開發(fā)的最好的編程語言之一應(yīng)用于手機(jī) App 行業(yè)。
雖然大多數(shù)人更喜歡在移動(dòng)開發(fā)中使用替代選項(xiàng),但是許多應(yīng)用程序離開了 Python 就無法正常工作。例如,最流行的照片服務(wù) Instagram 是用 Objective-C 編寫的,但它的服務(wù)器部分完全由 Python 主導(dǎo)。此外,它還被用于 Yahoo,Red Hat,Dropbox,Pinterest,Quora,Mail.ru 和 Yandex。
隨著時(shí)間的推移,開發(fā)者開始用 Python 開發(fā)成熟的移動(dòng)應(yīng)用程序。尤其是,用于手機(jī)的 Python 軟件開發(fā)成為可能,這要?dú)w功于兩個(gè)框架—— Kivy 和 BeeWare:
- Kivy 是一個(gè)用于開發(fā)跨平臺(tái)應(yīng)用程序的開放源碼庫。它可以讓你創(chuàng)建運(yùn)行在 Windows、 Android、 iOS 和 macOS 等主流平臺(tái)上的 Python GUI 應(yīng)用程序;
- BeeWare 則提供了一套工具,你可以用它來編寫移動(dòng)和桌面應(yīng)用程序。
Kivy 和 BeeWare 之間的關(guān)鍵區(qū)別在于后者使用特定于平臺(tái)的本地 UI 工具包,因此受到許多開發(fā)人員的青睞。
5. 總結(jié)
正如我們之前介紹的那樣,Python 是五種最流行的編程語言之一。
它廣泛應(yīng)用于各種 IT 領(lǐng)域,如網(wǎng)絡(luò)開發(fā)、機(jī)器學(xué)習(xí)、移動(dòng)應(yīng)用程序,甚至游戲創(chuàng)作。它易于學(xué)習(xí),有令人愉快的語法,并提供了一組足以解決任何問題的工具。
盡管 Python 不能完全取代 Java 和 PHP 成為 Web 開發(fā)的關(guān)鍵語言,但它仍然是機(jī)器學(xué)習(xí)的首選解決方案。