1. 程式人生 > >Python基礎學習篇章三

Python基礎學習篇章三

inf ins 獲取 嵌套 fin 們的 img upper 序列

一. Python對象類型

1. 對象是Python最基本的概念,一個Python程序可以分解為模塊、語句、表達式、和對象。它們的關系如下:(1)程序由模塊構成

(2)模塊包含語句

(3)語句包含表達式

(4)表達式建立並處理對象

2. Python核心數據類型(內置對象)

(1)數字 324,3.1415,992L,3+4j,Decimal

(2)字符串 ‘string‘,‘hello‘

(3)列表 [2, [3, ‘world‘], 4]

(4)字典 {‘name‘: ‘bob‘, ‘taste‘: ‘yum‘}

(5)元組 (23, ‘so‘, ‘kej‘, 34)

(6)文件 myfile = open(‘eggs‘, ‘r‘)

(7)其他類型 None,集合,布爾型

3. 一旦創建了一個對象,它就和操作集合綁定了----只可以對字符串進行字符串相關的操作,對列表進行列表相關的操作。Python是動態類型的(能自動的跟蹤數據類型而不是要求聲明代碼),它也是強類型語言(你只能對一個對象進行有效的操作)。

4. 下面是對以上數據類型的具體介紹:

(1)數字

  Python中的數字類型又細分為整數,浮點數,無限精度‘長’整形,有虛部的復數,固定精度的十進制數以及集合等。另外還有一些常用的數學模塊:math模塊,random模塊(數字隨機生成和隨機選擇)等。

技術分享圖片

(2)字符串

  字符串是在Python中作為序列(一個包含其他對象的有序集合)提到的第一個例子。序列中的元素包含了一個從左到右的順序----序列中的元素根據它們的相對位置進行存儲和讀取。作為序列,字符串有一些操作,比如可以通過內置函數len來獲取其長度,通過索引得到字符串中的各個元素(類似PHP中獲取索引數組的元素)。值得註意的是,Python支持反響索引!這裏有個規律:一個負的索引與字符串的長度相加,得到的操作是等效的! 另外序列也支持分片(slice)的操作(個人理解類似於PHP中的字符串截取,只不過語法和叫法不同)。分片的基本語法形式是這樣的:X[I:J] 表示“取出在X中從偏移為I,直到但不包括J的內容”

。在一個切片中,左邊界默認為0,右邊界默認為分片序列的長度。因此產生了以下的等效結果:

  str[1:] ---- str[1:len(str)], str[:3] ---- str[0:3], str[:] ---- 獲取整個字符串

技術分享圖片

作為序列,字符串也支持合並,使用+號可以使兩個字符拼接到一塊兒,同同時也可以重復,使用*號

技術分享圖片

註意: 字符串具有不可變性。比如你不能通過對其某一位置進行賦值而改變字符串。但是你可以通過建立一個新的字符串並以同一個變量名對其進行賦值。因為Python在運行過程中會清理舊的對象。

技術分享圖片

在Python中的每一個對象都可以分為可變性和不可變性。在核心類型中,數字、字符串、和元組是不可變的,列表和字典是可變的。以上的長度獲取,元素獲取,切片操作等是序列的通用操作,即上面的操作也能用於列表和元組序列。Python中針對每種數據類型都有其特定的方法。這裏有一條法則:可作用於多種類型的通用型操作都是以內置函數或表達式的形式出現的(比如,len(X), X[0]),但是類型特定的操作的事以方法調用的形式出現的(比如str.upper())!

要想知道一個對象都有哪些方法,可以使用內置dir函數,比如dir(str)

技術分享圖片

想要知道每個方法有什麽作用可以使用help(str.find)這種形式來獲取:

技術分享圖片

Python允許字符串包括在單引號或雙引號中,也能夠在三個引號(單引號或雙引號)中表示多行字符串的形式。當使用這種形式時,所有的行都合並在一起,並在每一行的末尾增加了換行符。

技術分享圖片

還有一點比較重要:字符串對象的方法支持基於模式的文本處理,就是這裏所說的模式匹配。我們需要導入一個名為re的模塊。這個模塊包含了類似搜索、分割和替換等調用。

技術分享圖片

技術分享圖片

(3)列表

  Python的列表對象是這個語言提供的最通用的序列。列表是一個任意類型的對象的位置相關的有序集合,它沒有固定的大小。在字符串上使用的序列操作,在這就不再敘述。Python的列表很像PHP中的數組,但是列表要強大的多。列表沒有固定類型的約束。下面來看看類型特有的操作:

技術分享圖片

使用dir()內置函數:

技術分享圖片

上面列舉的append(),pop()方法的作用分別是向列表list追加元素,和刪除某個位置的元素,後者會返回被刪除的元素。

列表的邊界檢查:Python不允許引用不存在的元素。請看下面的操作:

技術分享圖片

Python只允許修改列表索引範圍內的元素!想要增大列表,可以使用append方法或insert方法。

技術分享圖片

嵌套:Python核心數據類型的一個特性就是它們支持任意的嵌套。能夠以任意的組合對其進行嵌套(讓列表包含一個字典,並在字典中包含另一個列表等)。這種特性的一個直接應用就是實現矩陣或者Python中的“多維數組”。

技術分享圖片

上面的效果就表現了一個3*3的數字矩陣。也可以通過多種方法獲取其中的元素:

技術分享圖片

列表解析:這是處理列表的一個更高級的操作,加入我們想從矩陣中取出第二列,可以這樣做:

技術分享圖片

列表解析源自集合的概念。是一種通過在一個序列中運行一個表達式而創建的一個新列表。列表解析編寫在方括號中(提醒你在創建列表這個事實),並且有表達式和循環結構,也使用了變量(raw)。

(4)字典

Python中的字典不是序列,而是一種映射。映射是一個其他對象的集合,它們是通過鍵而不是相對位置來存儲的。映射沒有任何可靠的從左至右的順序。只是簡單的將鍵映射到值。字典是Python核心對象集合中對的唯一的一種映射類型。具有可變性,也可以隨需求增大或減小。

映射操作:字典編寫在大括號中,包含了一系列的 “鍵:值” 對。可以通過索引的方法取出字典中的元素值。

字典的編寫方式有兩種:D = {‘name‘:‘liu‘, ‘sex‘:‘boy‘, ‘age‘:20}或者 D = {} D[‘name‘] = ‘liu‘ D[‘sex‘] = ‘boy‘ D[‘age‘] = 20.代碼如下:

技術分享圖片

Python基礎學習篇章三