為什麼我要學習Python這門語言呢?其實很簡單,我想拓展技術面的同時,嘗試更多的方向,可能最後會不了了之,誰知道呢?有可能的話,我會向爬蟲和資料分析這個方向走。所以也就開始了我的Python學習之旅。當然,前提是我的本職工作Java也要前進。
因為有Java的基礎,所以入門Python還是比較簡單的,但我我不想草草了事,所以,會刻意慢一點。說到Python開發環境的安裝和工具的使用,我選擇的就是Python3.6, 而目前的工具,因為在初期,所以選擇了Python內建的IDLE
,那就來總結一下我這幾天的學習情況吧!對了,我選擇的教程就是Python基礎教程3
。白天需要工作,所以也就是在下班的時候抽時間看一下書。
就像是Java中的8種基礎資料型別 (Elementary Data Type)一樣,Python 中也有一些基本的資料類型,那今天就來說說 Python 中的基本的資料結構有哪些。
- 列表
- 元組
- 字串
- 字典
其中前面3種統稱為序列,為什麼強行把前3類歸在一起呢?因為它們有共同的操作。其中包括索引,切片,相加,相乘和成員檢查(即 in 操作符)
。
一個個的分析,Python 中的索引從 0 開始遞增
,而且可以使用 -1 定位到最後一個元素,依次向左遞減
。切片就很進階了,就是可以訪問固定索引範圍內的值,比方說 s = 'hello' s[1:3] = 'el'
注意一點就行,索引值是含前不含後的。這在 Python 中很常見。切片還有很多比較秀的操作,類如 s[-3:-1] = 'll' (注意剛剛說過的含前不含後)
,s[:] = 'hello' s[1:] = 'ello' s[:3] = 'hel'
,這些比較常用的操作吧,還有切片支援指定步長,預設步長為 1 s[::2] = 'hlo'
其餘的我也不說,根本記不住好吧!學的時候有個印象就好。序列相加就是直接加呀一個例子:[1,2,3]+[6] = [1,2,3,6];
乘法類似,'h'*3 = 'hhh'
成員資格就是值在不在序列中使用in
來進行判斷。舉例s = ['A','B','C']; 'A' in s = True
以上只是對Python序列的操作做一個簡單的說明。還有一些常用的方法,求長度,最大值,最小值分別使用len() max() min()
理解起來應該不存在問題。序列共同的操作說完之後,我們來看看每個都如何使用。
首先說什麼是列表,列表就是將資料使用[ ]
括起來,這就是是列表了,而元組就是將資料使用( )
括起來,字串使用的是' ' or " "
這樣一總結,就感覺清爽了很多嘛。要問為什麼會使用這些符號,人家就是這樣定義的,你能咋滴!具體的使用我不想說太多,不然有種在抄書的感覺啊!要知道,列表有很多的內建方法可以是使用,記不住沒關係,可以使用命令dir(list)
這樣就得到了列表中的所有方法,知道方法不會用方法啊,還有一個命令就是help(list.methodName)
這樣就可以得到解釋了。然而這是英文的,還是不懂,那就百度去吧。即使現在說了有哪些方法,我相信,不使用的話,還是會忘的一乾二淨。所以我就不多說了。總之要記住,有很多很多的方法你想到沒想到的可能都已經存在了!
元組和字串是不可變的,而元組和列表又很相似,列表可變,元組不可變,這是區別,而且元組使用的特別少,但是還是有用武之地的,目前沒見到而已,還需要修鍊修鍊。這就是一個元組(1,2,3)
注意元組使用的是括弧,中間逗號隔開,但是有一個要注意,若是元組只有一個元素,那麼一定要加一個逗號,像這樣1, or (1,)
不然誰知道你是在表達數字 1 還是元組(1,)呢 。
字串我們應該很熟悉了,說一點,關於字串的格式問題,我們可以使用 %s
來設定格式,形如這樣 name = 'David'; print('Hello , %s' %name )
這樣就可以把 name 這個字串填充到需要填充的字串中。%s
稱為轉換說明符,我理解的就是占坑。還有一種是使用 format 方法'{0},{2} and {1}'.format('frist','second','third') 結果: first,third and second
注意,這就是一種有預謀的占坑了,可以指定位置,當然也可以不指定,那就是按照順序來。字串的方法更是多到令人髮指的地步,沒關係,那就一點點的使用吧,我寫方法名你們來猜吧 center find join lower upper split title strip lstrip rstrip translate isspace isdigit isupper ...
簡直了,你們看著辦吧!
上面介紹的都可以使用索引來操作的資料類型,但是總是需要以一種資料類型來描述映射關係的吧,於是字典就應運而生了!也就是我們常說的 key-value 索引值對。那字典是怎麼表示的呢?這樣phonebook = {'David':'1234','Lucy':'9876'}
你看,就是一個大括弧+冒號+逗號的組合就建立了一個字典,這符號真是多呀,回憶一下列表用[ ]
,元組用( )
,字串用' ' or " "
,字典用{ }
所以說要善於總結啊,這樣記得才能牢呀。字典有個類叫dict
,幹嘛用的,就是建立字典用的,類似的列表是list
元組是tuple
。翻來覆去的比較,總會記得住,理解的清楚。字典也有些基本的操作,又到了看方法名的時候len(dict) || dict[key] || dict[key] = value || del dict[key] || key in dict || dict-表示一個字典類型的變數,key-字典的鍵,value-為鍵賦的值
另外要注意的是,字典的索引值必須是不可變的。這在 Java 整理的部分已經說過了 ~
還有要介紹一下字典的相關的方法,真的好煩,不想寫了。就簡單一點 dir(dict)
搞定,方法名都可以看到了。方法的使用 help(dict.methodName)
也搞定。感覺用字典來格式化字串這個功能很有用,單獨說一下,使用方法 format_map(dict)
就可以將字典中的值填充到字串中,感覺很給力,舉例:
data = {'a':'I','b':'You'}
'{a} love {b}'.format_map(data) = 'I love You'
就是這樣,變相的表白啊。
總結一下,目前只是瞭解到 Python 的基礎資料型別 (Elementary Data Type)和基本用法,後面再學習語句之後就可以進行簡單的邏輯編程了 。