Python 資料型別及基本操作
【概述】
不同的資料,需要定義不同的資料型別。
Python 定義了五個標準型別,用於儲存各種型別的資料:
- Numbers(數字)
- String(字串)
- List(列表)
- Tuple(元組)
- Dictionary(字典)
【數字】
數字資料型別用於儲存數值,它們是不可改變的資料型別,這意味著改變數字資料型別會分配一個新的物件。
當指定一個值時,數字物件就會被建立:
var1 = 1
var2 = 10
除建立外,也可以使用 del 語句刪除一些物件的引用:del var1[,var2[,var3[....,varN]]]]
del var del var_a, var_b
Python支援四種不同的數字型別:
- 整型(Int):通常被稱為是整型或整數,是正或負整數,不帶小數點。
- 長整型(long integers):無限大小的整數,整數最後是一個大寫或小寫的 L。
- 浮點型(floating point real values):浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 10^2 = 250)
- 複數(complex numbers) :複數由實數部分和虛數部分構成,可以用 a + bj,或 complex(a,b)表示, 複數的實部 a 和虛部 b 都是浮點型。
例項
int | long | float | complex |
---|---|---|---|
10 | 51924361L | 0.0 | 3.14j |
100 | -0x19323L | 15.20 | 45.j |
-786 | 0122L | -21.9 | 9.322e-36j |
080 | 0xDEFABCECBDAECBFBAEl | 32.3e+18 | .876j |
-0490 | 535633629843L | -90. | -.6545+0J |
-0x260 | -052318172735L | -32.54e100 | 3e+26J |
0x69 | -4721885298529L | 70.2E-12 | 4.53e-7j |
注:為避免與數字 1 混淆,一般在長整型結尾使用大寫的 L 來顯示長整型。
【字串】
字串是由數字、字母、下劃線組成的一串字元,一般記為:s="a1a2···an"(n>=0),它是程式語言中表示文字的資料型別。
1.訪問
python 的字串列表有2種取值順序:
- 從左到右索引預設0開始的,最大範圍是:字串長度-1
- 從右到左索引預設-1開始的,最大範圍是:字串開頭
例如:
如果要從字串中獲取一段子字串的話,可以使用 [頭下標:尾下標] 來擷取相應的字串,獲取的子字串包含頭下標的字元,但不包含尾下標的字元。其中下標是從 0 開始算起,可以是正數或負數,也可以為空,表示取到頭或尾。
例項:
str='Hello World!'
print(str)
print(str[0])
print(str[2:5])
print(str[2:])
2.字串轉義字元
在需要在字元中使用特殊字元時,python 用反斜槓 \ 來轉義字元。
\(在行尾時) | 續行符 |
\\ | 反斜槓 |
\' | 單引號 |
\" | 雙引號 |
\b | 退格 |
\a | 響鈴 |
\e | 轉義 |
\000 | 空 |
\n | 換行 |
\v | 縱向製表符 |
\t | 橫向製表符 |
\r | 回車 |
\f | 換頁 |
\oyy | 八進位制數,yy代表的字元,例如:\o12代表換行 |
\xyy | 十六進位制數,yy代表的字元,例如:\x0a代表換行 |
\other | 其它的字元以普通格式輸出 |
3.三引號的用法
python 中,三引號允許一個字串跨多行,字串中可以包含換行符、製表符以及其他特殊字元,其語法是一對連續的單引號或者雙引號,成對使用。
三引號讓程式設計師從引號和特殊字串的泥潭裡面解脫出來,自始至終保持一小塊字串的格式是所謂的 WYSIWYG(所見即所得)格式的。其典例是,當需要一塊 HTML 或者 SQL 時,這時用字串組合,特殊字串轉義將會非常的繁瑣,使用三引號可以擺脫轉義字元的泥潭。
例如:
str='''Hello
World!'''
print(str)
【列表】
序列是 Python 中使用最頻繁的資料結構,其資料項不需要具有相同的型別,字元,數字,字串、包含列表(即巢狀)均可,使用 [ ] 標識,可以進行索引,切片,加,乘,檢查成員等操作。
建立一個列表,只要把逗號分隔的不同的資料項使用方括號括起來即可。
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
1.訪問
列表中值的切割也使用:變數 [頭下標:尾下標] 的方式,與字串相同,從左到右索引預設 0 開始,從右到左索引預設 -1 開始,下標可以為空表示取到頭或尾。
2.新增元素
如果想新增列表元素,可以使用 append() 方法來新增。
list = ['Hello']
list.append('World')
list.append('!')
print(list)
3.刪除元素
如果想刪除列表元素,可以使用 del 語句來刪除。
list = ['Hello','World','!']
print(list)#刪除前
del list[2]
print(list)#刪除後
【元組】
元組類似於列表,不同之處在於元組不能二次賦值,相當於只讀列表。
元組用 () 標識,內部元素用逗號隔開,如果想建立元組,只需要在括號中新增元素,並用逗號隔開即可。
1.訪問
元組中值的切割也使用:變數 [頭下標:尾下標] 的方式,與字串相同,從左到右索引預設 0 開始,從右到左索引預設 -1 開始,下標可以為空表示取到頭或尾。
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print ( "tup1[0]: ", tup1[0] )
print ( "tup2[1:5]: ", tup2[1:5] )
2.連線組合
元組中的元素值是不允許修改的,但可以用 + 加號來對元組進行連線組合。
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 建立一個新的元組
tup3 = tup1 + tup2
print (tup3)
3.刪除元組
元組中的元素值是不允許刪除的,但可以使用 del 語句來刪除整個元組。
tup = ('physics', 'chemistry', 1997, 2000)
del tup
【字典】
字典是除列表以外最靈活的內建資料結構型別。
列表是有序的物件集合,字典是無序的物件集合。兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。
字典由索引(key)和它對應的值(value)組成,稱為鍵值對(key=>value),每對鍵值之間用冒號 : 分割,每個鍵值對之間用逗號 , 分割,整個字典包括在花括號 {} 中 ,格式為:dir = {key1 : value1, key2 : value2 , ... ,keyN : valueN}
鍵是唯一的,因此只可用數字、字串或元組來充當,值可以取任何資料型別的任何值,如果重複一個鍵值對則會替換前面的鍵值對。
dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }
1.訪問
將想要訪問的鍵放入方括號 [] 內即可得到該鍵所對應的值。
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
2.新增鍵值對
如果想向字典中新增新的鍵值對,直接將想要新增的鍵放到方括號 [] 中,以賦值的形式新增值即可。
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
dict['School'] = "DPS School";
3.修改鍵值
如果想修改字典中某一鍵所對應的值,直接將想要修改的鍵放到方括號 [] 中,以賦值的形式修改值即可。
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
dict['Age'] = 8;
4.刪除鍵值對
如果想要刪除某一條目,使用 del 語句將想要刪除的鍵值對的鍵放到方括號 [] 中即可。
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name'] # 刪除鍵是'Name'的條目
5.清空字典
如果想要清空字典條目,使用其內建函式 dir.clear() 即可。
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict.clear()
6.刪除字典
使用 del 語句可以直接刪除一個字典。
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict
【集合】
集合是一個無序不重複元素的序列,建立集合時,如果集合記憶體在相同的元素,則只取一個,其他相同的元素視為不存在。
可以使用大括號 {} 來建立集合,格式:setname = {value01,value02,...}
或者 set() 函式來建立集合,格式:setname=set(value)
s={"Google", "Runoob", "Taobao"}
s=set(("Google", "Runoob", "Taobao"))
1.新增元素
將元素 x 新增到集合 s 中,如果元素已存在,則不進行任何操作,語法格式:s.add(x)
s=set(("Google", "Baidu", "Taobao"))
s.add("Tencent")
注:add() 只可新增一個元素
若想新增多個元素到集合 s 中,可以使用 update(),其引數可以是列表、元組、字典等,語法格式:s.update(x)
x 可以有多個,用逗號分隔
s=set(("Google", "Baidu", "Taobao"))
s.update(("Tencent","Facebook"))
2.移除元素
將元素 x 新增到集合 s 中移除,如果元素不存在,則會發生錯誤,語法格式:s.remove(x)
s=set(("Google", "Baidu", "Taobao"))
s.remove("Baidu")
s.remove("Tencent")#不存在會發生錯誤
除 remove() 外,還可以使用 discard() 來移除元素,且如果元素不存在,不會發生錯誤,語法格式:s.discard(x)
s=set(("Google", "Baidu", "Taobao"))
s.discard("Baidu")
s.discard("Tencent")#不存在不會發生錯誤
也可以設定隨機刪除集合 s 中的一個元素,語法格式:s.pop()
s=set(("Google", "Baidu", "Taobao"))
s.pop()
3.計算集合元素個數
可用 len() 來計算集合 s 中的元素個數,值得注意的是,若集合中有相同的元素,則所有相同的元素僅視為一個元素。語法格式:len(s)
s=set(("Google", "Baidu", "Taobao"))
length=s.len()
4.清空集合
可用 clear() 來清空集合 s 中的所有元素,語法格式:s.clear()
s=set(("Google", "Baidu", "Taobao"))
s.clear()