剖析人工智慧必學語言---Python的優缺點及應用範圍

Python 簡介

剖析人工智慧必學語言---Python的優缺點及應用範圍

Python 是一個高層次的結合瞭解釋性、編譯性、互動性和麵向物件的指令碼語言。

Python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。

Python 是一種解釋型語言: 這意味著開發過程中沒有了編譯這個環節。類似於PHP和Perl語言。

Python 是互動式語言: 這意味著,您可以在一個 Python 提示符 >>> 後直接執行程式碼。

Python 是面嚮物件語言: 這意味著Python支援面向物件的風格或程式碼封裝在物件的程式設計技術。

Python 是初學者的語言:Python 對初級程式設計師而言,是一種偉大的語言,它支援廣泛的應用程式開發,從簡單的文字處理到 WWW 瀏覽器再到遊戲。

02Python 發展歷史

剖析人工智慧必學語言---Python的優缺點及應用範圍

Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷蘭國家數學和計算機科學研究所設計出來的。

Python 本身也是由諸多其他語言發展而來的,這包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的指令碼語言等等。

像 Perl 語言一樣,Python 原始碼同樣遵循 GPL(GNU General Public License)協議。

現在 Python 是由一個核心開發團隊在維護,Guido van Rossum 仍然佔據著至關重要的作用,指導其進展。

03Python 特點

剖析人工智慧必學語言---Python的優缺點及應用範圍

1。易於學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。

2。易於閱讀:Python程式碼定義的更清晰。

3。易於維護:Python的成功在於它的原始碼是相當容易維護的。

4。一個廣泛的標準庫:Python的最大的優勢之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh相容很好。

5。互動模式:互動模式的支援,您可以從終端輸入執行程式碼並獲得結果的語言,互動的測試和除錯程式碼片斷。

6。可移植:基於其開放原始碼的特性,Python已經被移植(也就是使其工作)到許多平臺。

7。可擴充套件:如果你需要一段執行很快的關鍵程式碼,或者是想要編寫一些不願開放的演算法,你可以使用C或C++完成那部分程式,然後從你的Python程式中呼叫。

8。資料庫:Python提供所有主要的商業資料庫的介面。

9。GUI程式設計:Python支援GUI可以建立和移植到許多系統呼叫。

10。可嵌入: 你可以將Python嵌入到C/C++程式,讓你的程式的使用者獲得“指令碼化”的能力。

1

優點

簡單 —— Python 是一種代表簡單主義思想的語言。閱讀一個良好的 Python 程式就感覺像是在讀英語一樣,儘管這個英語的要求非常嚴格!Python 的這種虛擬碼本質是它最大的優點之一。它使你能夠專注於解決問題而不是去搞明白語言本身。

易學 —— 就如同你即將看到的一樣,Python 極其容易上手。前面已經提到了,Python 有極其簡單的語法。

免費、開源 —— Python 是 FLOSS(自由/開放原始碼軟體)之一。簡單地說,你可以自由地釋出這個軟體的複製、閱讀它的原始碼、對它做改動、把它的一部分用於新的自由軟體中。FLOSS 是基於一個團體分享知識的概念。這是為什麼 Python 如此優秀的原因之一——它是由一群希望看到一個更加優秀的 Python 的人創造並經常改進著的。

高層語言 —— 當你用 Python 語言編寫程式的時候,你無需考慮諸如如何管理你的程式使用的記憶體一類的底層細節。

可移植性 —— 由於它的開源本質,Python 已經被移植在許多平臺上(經過改動使它能夠工作在不同平臺上)。如果你小心地避免使用依賴於系統的特性,那麼你的所有 Python 程式無需修改就可以在下述任何平臺上面執行。這些平臺包括 Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE 甚至還有 PocketPC、Symbian 以及 Google 基於 Linux 開發的 Android 平臺!

解釋性 —— 這一點需要一些解釋。一個用編譯性語言比如 C 或 C++ 寫的程式可以從原始檔(即 C 或 C++ 語言)轉換到一個你的計算機使用的語言(二進位制程式碼,即0和1)。這個過程透過編譯器和不同的標記、選項完成。當你執行你的程式的時候,連線/轉載器軟體把你的程式從硬碟複製到記憶體中並且執行。而 Python 語言寫的程式不需要編譯成二進位制程式碼。你可以直接從原始碼執行程式。在計算機內部,Python 直譯器把原始碼轉換成稱為位元組碼的中間形式,然後再把它翻譯成計算機使用的機器語言並執行。事實上,由於你不再需要擔心如何編譯程式,如何確保連線轉載正確的庫等等,所有這一切使得使用 Python 更加簡單。由於你只需要把你的 Python 程式複製到另外一臺計算機上,它就可以工作了,這也使得你的 Python 程式更加易於移植。

面向物件 —— Python 既支援面向過程的程式設計也支援面向物件的程式設計。在“面向過程”的語言中,程式是由過程或僅僅是可重用程式碼的函式構建起來的。在“面向物件”的語言中,程式是由資料和功能組合而成的物件構建起來的。與其他主要的語言如 C++ 和 Java 相比,Python 以一種非常強大又簡單的方式實現面向物件程式設計。

可擴充套件性 —— 如果你需要你的一段關鍵程式碼執行得更快或者希望某些演算法不公開,你可以把你的部分程式用 C 或 C++ 編寫,然後在你的 Python 程式中使用它們。

豐富的庫 —— Python 標準庫確實很龐大。它可以幫助你處理各種工作,包括正則表示式、文件生成、單元測試、執行緒、資料庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV 檔案、密碼系統、GUI(圖形使用者介面)、Tk 和其他與系統有關的操作。記住,只要安裝了 Python,所有這些功能都是可用的。這被稱作 Python 的“功能齊全”理念。除了標準庫以外,還有許多其他高質量的庫,如 wxPython、Twisted 和 Python 影象庫等等。

規範的程式碼 —— Python 採用強制縮排的方式使得程式碼具有極佳的可讀性。

2

缺點

執行速度,有速度要求的話,用 C++ 改寫關鍵部分吧。

國內市場較小(國內以 Python 來做主要開發的,目前只有一些 web2。0 公司)。但時間推移,目前很多國內軟體公司,尤其是遊戲公司,也開始規模使用他。

中文資料匱乏(好的 Python 中文資料屈指可數,現在應該變多了)。託社群的福,有幾本優秀的教材已經被翻譯了,但入門級教材多,高階內容還是隻能看英語版。

構架選擇太多(沒有像 C# 這樣的官方 。net 構架,也沒有像 ruby 由於歷史較短,構架開發的相對集中。Ruby on Rails 構架開發中小型web程式天下無敵)。不過這也從另一個側面說明,python比較優秀,吸引的人才多,專案也多。

04Python的應用

剖析人工智慧必學語言---Python的優缺點及應用範圍

系統程式設計:提供API(ApplicationProgrammingInterface應用程式程式設計介面),能方便進行系統維護和管理,Linux下標誌性語言之一,是很多系統管理員理想的程式設計工具。

圖形處理:有PIL、Tkinter等圖形庫支援,能方便進行圖形處理。

數學處理:NumPy擴充套件提供大量與許多標準數學庫的介面。

文字處理:python提供的re模組能支援正則表示式,還提供SGML,XML分析模組,許多程式設計師利用python進行XML程式的開發。

資料庫程式設計:程式設計師可透過遵循PythonDB-API(資料庫應用程式程式設計介面)規範的模組與MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等資料庫通訊。python自帶有一個Gadfly模組,提供了一個完整的SQL環境。

網路程式設計:提供豐富的模組支援sockets程式設計,能方便快速地開發分散式應用程式。很多大規模軟體開發計劃例如Zope,Mnet及BitTorrent。Google都在廣泛地使用它。

Web程式設計:應用的開發語言,支援最新的XML技術。

多媒體應用:Python的PyOpenGL模組封裝了“OpenGL應用程式程式設計介面”,能進行二維和三維影象處理。PyGame模組可用於編寫遊戲軟體。

pymo引擎:PYMO全稱為pythonmemoriesoff,是一款運行於SymbianS60V3,Symbian3,S60V5,Symbian3,Android系統上的AVG遊戲引擎。因其基於python2。0平臺開發,並且適用於建立秋之回憶(memoriesoff)風格的AVG遊戲,故命名為PYMO。

駭客程式設計:python有一個hack的庫,內建了你熟悉的或不熟悉的函式,但是缺少成就感。

用Python寫簡單爬蟲

剖析人工智慧必學語言---Python的優缺點及應用範圍

透過上面這三句就可以將URL的原始碼存在content變數中,其型別為字元型。

接下來是要從這堆HTML原始碼中提取我們需要的內容。用Chrome檢視一下對應的內容的程式碼(也可以用Firefox的Firebug)。

可以看到url的資訊儲存在span標籤中,要獲取其中的資訊可以用正則式。

05python主要應用領域或應用場景

剖析人工智慧必學語言---Python的優缺點及應用範圍

Web應用開發

Python經常被用於Web開發。比如,透過mod_wsgi模組,Apache可以執行用Python編寫的Web程式。Python定義了WSGI標準應用介面來協調Http伺服器與基於Python的Web程式之間的通訊。一些Web框架,如Django,TurboGears,web2py,Zope等,可以讓程式設計師輕鬆地開發和管理複雜的Web程式。

作業系統管理、伺服器運維的自動化指令碼

剖析人工智慧必學語言---Python的優缺點及應用範圍

在很多作業系統裡,Python是標準的系統元件。大多數Linux發行版以及NetBSD、OpenBSD和MacOSX都集成了Python,可以在終端下直接執行Python。有一些Linux發行版的安裝器使用Python語言編寫,比如Ubuntu的Ubiquity安裝器,RedHatLinux和Fedora的Anaconda安裝器。GentooLinux使用Python來編寫它的Portage包管理系統。Python標準庫包含了多個呼叫作業系統功能的庫。透過pywin32這個第三方軟體包,Python能夠訪問Windows的COM服務及其它WindowsAPI。使用IronPython,Python程式能夠直接呼叫。NetFramework。一般說來,Python編寫的系統管理指令碼在可讀性、效能、程式碼重用度、擴充套件性幾方面都優於普通的shell指令碼。

科學計算

剖析人工智慧必學語言---Python的優缺點及應用範圍

NumPy,SciPy,Matplotlib可以讓Python程式設計師編寫科學計算程式。

桌面軟體

剖析人工智慧必學語言---Python的優缺點及應用範圍

PyQt、PySide、wxPython、PyGTK是Python快速開發桌面應用程式的利器。

伺服器軟體(網路軟體)

剖析人工智慧必學語言---Python的優缺點及應用範圍

Python對於各種網路協議的支援很完善,因此經常被用於編寫伺服器軟體、網路爬蟲。第三方庫Twisted支援非同步網路程式設計和多數標準的網路協議(包含客戶端和伺服器),並且提供了多種工具,被廣泛用於編寫高效能的伺服器軟體。

遊戲

剖析人工智慧必學語言---Python的優缺點及應用範圍

很多遊戲使用C++編寫圖形顯示等高效能模組,而使用Python或者Lua編寫遊戲的邏輯、伺服器。相較於Python,Lua的功能更簡單、體積更小;而Python則支援更多的特性和資料型別。

構思實現,產品早期原型和迭代

剖析人工智慧必學語言---Python的優缺點及應用範圍

YouTube、Google、Yahoo!、NASA都在內部大量地使用Python。

06Python的應用方向

剖析人工智慧必學語言---Python的優缺點及應用範圍

1。常規軟體開發

剖析人工智慧必學語言---Python的優缺點及應用範圍

Python支援函數語言程式設計和OOP面向物件程式設計,能夠承擔任何種類軟體的開發工作,因此常規的軟體開發、指令碼編寫、網路程式設計等都屬於標配能力。

2。科學計算

剖析人工智慧必學語言---Python的優缺點及應用範圍

隨著NumPy,SciPy,Matplotlib,Enthoughtlibrarys等眾多程式庫的開發,Python越來越適合於做科學計算、繪製高質量的2D和3D影象。和科學計算領域最流行的商業軟體Matlab相比,Python是一門通用的程式設計語言,比Matlab所採用的指令碼語言的應用範圍更廣泛,有更多的程式庫的支援。雖然Matlab中的許多高階功能和toolbox目前還是無法替代的,不過在日常的科研開發之中仍然有很多的工作是可以用Python代勞的。

3。自動化運維

剖析人工智慧必學語言---Python的優缺點及應用範圍

這幾乎是Python應用的自留地,作為運維工程師首選的程式語言,Python在自動化運維方面已經深入人心,比如Saltstack和Ansible都是大名鼎鼎的自動化平臺。

4。雲計算

剖析人工智慧必學語言---Python的優缺點及應用範圍

開源雲計算解決方案OpenStack就是基於Python開發的,搞雲計算的同學都懂的。

5。WEB開發

剖析人工智慧必學語言---Python的優缺點及應用範圍

基於Python的Web開發框架不要太多,比如耳熟能詳的Django,還有Tornado,Flask。其中的Python+Django架構,應用範圍非常廣,開發速度非常快,學習門檻也很低,能夠幫助你快速的搭建起可用的WEB服務。

6。網路爬蟲

剖析人工智慧必學語言---Python的優缺點及應用範圍

也稱網路蜘蛛,是大資料行業獲取資料的核心工具。沒有網路爬蟲自動地、不分晝夜地、高智慧地在網際網路上爬取免費的資料,那些大資料相關的公司恐怕要少四分之三。能夠編寫網路爬蟲的程式語言有不少,但Python絕對是其中的主流之一,其Scripy爬蟲框架應用非常廣泛。

7。資料分析

剖析人工智慧必學語言---Python的優缺點及應用範圍

在大量資料的基礎上,結合科學計算、機器學習等技術,對資料進行清洗、去重、規格化和針對性的分析是大資料行業的基石。Python是資料分析的主流語言之一。

8。人工智慧

剖析人工智慧必學語言---Python的優缺點及應用範圍

Python在人工智慧大範疇領域內的機器學習、神經網路、深度學習等方面都是主流的程式語言,得到廣泛的支援和應用。

職座標人工智慧Python火熱開班中

在職座標的人工智慧Python課程中不僅會全面的講述理論知識給學員,還會結合企業及當下流行發展的實際需求,實時更新專案,並透過實踐讓學員更加熟練的操作專案。

以下是職座標部分人工智慧Python階段課程實戰專案

1

剖析人工智慧必學語言---Python的優缺點及應用範圍

python即時通訊系統

主要知識點:python初級基礎知識,python高階基礎知識,高階特性,IO操作 ,面向物件程式設計,內建模組和第三方模組,網路程式設計,介面程式設計。

2

剖析人工智慧必學語言---Python的優缺點及應用範圍

Python認證系統

主要知識點:django基礎,檢視,模板,模型,django站點管理,表單,django部署。

3

剖析人工智慧必學語言---Python的優缺點及應用範圍

Python 個人知識釋出網站

主要知識點:django基礎,檢視,模板,模型,django站點管理,表單,django部署。

4

剖析人工智慧必學語言---Python的優缺點及應用範圍

微信公眾號自動化運營

主要知識點:網路爬蟲基礎,網路爬蟲高階,網路爬蟲進階。

歡迎關注微信公眾號“職座標線上”回覆python限時領取學習大禮包,答疑解惑一步搞定!

職座標人工智慧線上班火熱招生中,學IT就來職座標!