本章將介紹Python的最基本語法,以及一些和深度學(xué)習(xí)還有計算機(jī)視覺最相關(guān)的基本使用。
Python簡介
Python是一門解釋型的高級編程語言,特點(diǎn)是簡單明確。Python作者是荷蘭人Guido van Rossum,1982年他獲得數(shù)學(xué)和計算機(jī)碩士學(xué)位后,在荷蘭數(shù)學(xué)與計算科學(xué)研究所(Centrum Wiskunde & Informatica, CWI)謀了份差事。在CWI期間,Guido參與到了一門叫做ABC的語言開發(fā)工作中。ABC是一門教學(xué)語言,所以擁有簡單,可讀性好,語法更接近自然語言等特點(diǎn)。在那個C語言一統(tǒng)天下的年代,ABC就是一股簡單的清流,畢竟是門教學(xué)語言,最后沒有流行起來,不過這段經(jīng)歷影響了Guido。1989年的圣誕假期,閑得蛋疼的Guido決定設(shè)計一門簡單易用的新語言,要介于C和Shell之間,同時吸取ABC語法中的優(yōu)點(diǎn)。Guido用自己喜歡的一部喜劇電視劇來命名這門語言:《Monty Python‘s Flying Circus》。
1991年,第一版基于C實(shí)現(xiàn)的Python編譯器誕生,因?yàn)楹唵?,拓展性好,Python很快就在Guido的同事中大受歡迎,不久Python的核心開發(fā)人員就從Guido一人變成了一個小團(tuán)隊。后來隨著互聯(lián)網(wǎng)時代的到來,開源及社區(qū)合作的方式蓬勃發(fā)展,Python也借此上了發(fā)展的快車道。因?yàn)镻ython非常容易拓展,在不同領(lǐng)域的開發(fā)者貢獻(xiàn)下,許多受歡迎的功能和特征被開發(fā)出來,漸漸形成了各種各樣的庫,其中一部分被加入到Python的標(biāo)準(zhǔn)庫中,這讓本來就不需要過多思考底層細(xì)節(jié)的Python變得更加強(qiáng)大好用。在不過多考慮執(zhí)行效率的前提下,使用Python進(jìn)行開發(fā)的周期相比傳統(tǒng)的C/C++甚至Java等語言都大大縮短,代碼量也大幅降低,所以出bug的可能性也小了很多。因此有了語言專家Bruce Eckel的那句名言:Life is short, you need Python. 后來這句話的中文版“人生苦短,我用Python”被Guido印在了T恤上。發(fā)展至今,Python漸漸成了最流行的語言之一,在編程語言排行榜TOBIE中常年占據(jù)前5的位置。另外隨著Python的用戶群越來越壯大,慢慢在本身特點(diǎn)上發(fā)展出了自己的哲學(xué),叫做Python的禪(The Zen of Python)。遵循Python哲學(xué)的做法叫做很Python(Pythonic),具體參見:
PEP 20 — The Zen of Python
>> import this
Python擁有很好的擴(kuò)充性,可以非常輕松地用其他語言編寫模塊供調(diào)用,用Python編寫的模塊也可以通過各種方式輕松被其他語言調(diào)用。所以一種常見的Python使用方式是,底層復(fù)雜且對效率要求高的模塊用C/C++等語言實(shí)現(xiàn),頂層調(diào)用的API用Python封裝,這樣可以通過簡單的語法實(shí)現(xiàn)頂層邏輯,故而Python又被稱為“膠水語言”。這種特性的好處是,無需花費(fèi)很多時間在編程實(shí)現(xiàn)上,更多的時間可以專注于思考問題的邏輯。尤其是對做算法和深度學(xué)習(xí)的從業(yè)人員,這種方式是非常理想的,所以如今的深度學(xué)習(xí)框架中,除了MATLAB,或是Deeplearning4j這種擺明了給Java用的,其他框架基本上要么官方接口就是Python,要么支持Python接口。
安裝和使用Python
Python有兩個大版本,考慮到用戶群數(shù)量和庫的各種框架的兼容性,本文以Python2(2.7)為準(zhǔn),語法盡量考慮和Python3的兼容。
Unix/Linux下的Python基本都是系統(tǒng)自帶的,一般默認(rèn)為Python2,使用時在終端直接鍵入python就能進(jìn)入Python解釋器界面:
在解釋器下就已經(jīng)可以進(jìn)行最基本的編程了,比如:
?
寫程序的話還是需要保存成文件再執(zhí)行,比如我們寫下面語句,并且保存為helloworld.py:
print(“Hello world!”)
然后在終端里執(zhí)行:
安裝更多的python庫一般有兩種方法,第一是用系統(tǒng)的軟件包管理,以Ubuntu 16.04 LTS為例,比如想要安裝numpy庫(后面會介紹這個庫),軟件包的名字就是python-numpy,所以在終端中輸入:
>> sudo apt install python-numpy
Python自己也帶了包管理器,叫做pip,使用如下:
>> pip install numpy
安裝和深度學(xué)習(xí)相關(guān)的框架時,一般來說推薦使用系統(tǒng)自帶的包管理,出現(xiàn)版本錯誤的可能性低一些。另外也可以使用一些提前配置好很多第三方庫的Python包,這些包通常已經(jīng)包含了深度學(xué)習(xí)框架中絕大多數(shù)的依賴庫,比如最常用的是Anaconda:
Download Anaconda Now!
評論
查看更多