本文為《爬著學Python》系列第三篇文章档悠。
在真正進行Python基礎學習之前思喊,我們再來嘗試壁酬、熟悉一下Python語句,再次感受一下Python語言的特點恨课。所謂磨刀不誤砍柴工舆乔,準備做再多都是不為過的。
但是在這里庄呈,還有一件事情要做蜕煌,就是推薦互聯(lián)網(wǎng)上免費的系統(tǒng)性的Python基礎教學資源。
第一個诬留,是網(wǎng)易大學MOOC的Python語言課程(Python語言程序設計_北京理工大學_中國大學MOOC(慕課))斜纪。該課程解釋比較清晰贫母,但講得比較淺,也沒有突出Python語言的特點盒刚,非常適合無編程基礎的初學者腺劣,但不是很推薦對自身學習能力特別自信的讀者。MOOC上其他Python課程也很多因块,學有余力的可以用來拓寬視野橘原、自主選擇感興趣的方向。
第二個涡上,是廖雪峰的Python課程(Python教程 - 廖雪峰的官方網(wǎng)站)趾断。這個教程的特點在于內(nèi)容相對全面且檢索方便,初學者可以用來當作備忘文檔吩愧。純粹當自學材料的話芋酌,該教程的質量也還是值得認可的。
第三個雁佳,是官方的tutorial(The Python Tutorial — Python 3.6.2 documentation)脐帝。這個沒太多可說,對于外語能力過硬的學習者來說糖权,官方tutorial永遠是最快捷最科學的學習途徑堵腹。當然,這樣的文檔大多都有翻譯(Python 入門指南 — Python tutorial 3.6.0 documentation)星澳,因此外語能力不夠也不用急疚顷。不過還是推薦看英文原文。
第四個禁偎,是慕課網(wǎng)的在線課程(搞定python基礎_學習規(guī)劃_慕課網(wǎng)學習路徑)荡含,主要包括Python入門和Python進階。慕課網(wǎng)課程比較豐富届垫,難度跨度比較大,選擇面非常廣全释,是在線學習的優(yōu)秀資源装处。
最后額外推薦一個我認為不遜色以上任何的學習平臺SoloLearn(Python 3 Tutorial | SoloLearn: Learn to code for FREE!),學起來比較輕松浸船。并且移動端全平臺都有客戶端(Android/IOS/UWP)妄迁。
總之,學習途徑很多李命,關鍵在于"趁早下手"+"持之以恒"登淘,以上學習方式推薦程度逐漸遞進,學習者可以自主選擇封字,也可以交叉借鑒黔州,但還是推薦專心選一種路徑走一遍完整的學習過程耍鬓。只要盡快完成一遍完整的學習流程,就能對Python有個整體的印象流妻,方便進一步學習牲蜀。
以上是我對于Python基礎學習的建議,我的建議就是別看我的教程绅这,好的教程實在太多:)
但是該完成的工作還是得做涣达。本文也簡單介紹一下Python語法特點。
首先關于解釋器命令行運行與文件運行兩種方式不再贅述了证薇,之前提到過度苔,以后默認都是在IDE或者編輯器中編寫.py
文件來完成目的。
賦值
首先是最簡單的賦值語句浑度。
a = 3
在別的語言中寇窑,變量在使用前需要聲明,而Python不需要聲明變量俺泣。這是因為像在C語言中要顯式分配內(nèi)存給要操作的變量疗认,于是需要根據(jù)變量類型來決定給變量的內(nèi)存大小。之后變量的值直接保存在變量中伏钠,這叫作值語義横漏。
在Python中我們的變量可以說是沒有類型的,它是一個指向數(shù)據(jù)對象的標記熟掂,這個標記本身占用較小的固定內(nèi)存缎浇,真正占用內(nèi)存的是變量所指向的數(shù)據(jù)對象具體的大小,這叫做引用語義赴肚。為了方便區(qū)分素跺,我們根據(jù)變量指向的值類型來確定變量的類型。
簡單來說誉券,值語義中變量就像是規(guī)定好大小不同的盒子指厌,再把數(shù)據(jù)裝進盒子里;引用語義就像是把所有數(shù)據(jù)存在銀行踊跟,變量就是你的賬號和密碼踩验。更多的解釋可以參考我的另一篇文章(Python精進-裝飾器與函數(shù)對象)。
真正在打基礎的同學對以上概念有個大概的了解即可商玫,在以后的學習中會更逐漸體會到Python的這種特點箕憾。
在執(zhí)行這條語句之后,Python大概做了這些事情:創(chuàng)建了一個數(shù)字對象3拳昌,聲明了一個變量a袭异,將變量a指向數(shù)字對象3。從此以后我們訪問a時炬藤,就會定向到a的對象3御铃。
如果我們在文件中只輸入這一行碴里,執(zhí)行這個文件確"什么都沒有發(fā)生",這是因為我們?nèi)鄙僖粋€輸出語句畅买。
輸出
輸出語句很重要并闲。計算機最開始就像是現(xiàn)在的計算器,我們輸入數(shù)據(jù)是為了計算結果谷羞,如果計算結果不輸出帝火,我們就達不到目的。
print(a)
在這時候我們就接觸到一個新概念湃缎,叫作函數(shù)犀填。
我們通過print
函數(shù)來實現(xiàn)輸出,這是它的函數(shù)名嗓违,調(diào)用時我們需要在它后面加上括號九巡,有必要時我們還需要加入變量作為參數(shù),該例中a就是參數(shù)(print函數(shù)對于參數(shù)有要求蹂季,要求這個對象具有__str__方法冕广,以后會在類的教程中涉及)。
之所以調(diào)用函數(shù)要加括號偿洁,是為了和變量本身區(qū)分開來撒汉。我們在上面的賦值中講到,Python不用定義變量涕滋,變量是個標記睬辐。在Python中,不僅僅操作的變量是對象宾肺,函數(shù)也是對象(Python精進-裝飾器與函數(shù)對象)溯饵。
如果我們做這樣的事情:
print = 3
我們對print
賦值,那么從此以后我們再也用不了那個用來輸出的函數(shù)了锨用。print
變成了一個整數(shù)丰刊。我們再執(zhí)行print(a)
就會出錯。因此增拥,我們要注意不能對可能用到的內(nèi)置函數(shù)進行輕易地賦值藻三。Python3中相比于Python2增加了一些內(nèi)置函數(shù),也簡化了大量的內(nèi)置函數(shù)跪者。
總結
是的,就這么多熄求。關于數(shù)據(jù)類型渣玲、控制結構,都會在后續(xù)的Python基礎文章中介紹弟晚。初步設計的內(nèi)容主要是面向過程編程相關內(nèi)容忘衍。因為我覺得面向過程是Python最直接的體現(xiàn)逾苫。函數(shù)的復雜操作會在函數(shù)式編程中作為基礎內(nèi)容介紹。更多的類相關內(nèi)容會放在比較靠后的部分枚钓,因為這方面的知識比較復雜铅搓,而且我覺得Python并沒有必要采取面向對象編程。當然搀捷,面向對象依然是Python編程中幾乎最常用的方法星掰,這是我們不得不學它的原因。