文/帥朋
Python的幾種基本的數據類型包括整型、浮點型、字符串、布爾類型、列表(List)、元組(Tuple)、集合(Set)、字典(Dict)等等。接下來就介紹下這幾種基本的數據類型。
1. 整型
整型也就是整數,Python可以處理任意大小的整數,其中當然也包括負整數,在Python中整數的表示方法和數學中數學的表示方法一樣,例如1,100,-1,-100,0等等。
由于計算機使用的是二進制,所以用十六進制來表示整數比較方便,十六進制用0x前綴和0-9,a-f表示,例如0xff00,0xac06等等。
2. 浮點型
浮點型也就是小數浮點數可以用數學寫法,如1.23,3.14,-9.01,等等。但是對于很大或很小的浮點數,就必須用科學計數法表示,用e代替10,3.14x10^9就是3.14e9,0.000012可以寫成1.2e-5等等。
3. 字符串
字符串是以' '或" "括起來的任意文本,比如'abc',"123"等等。請注意,' '或" "本身只是一種表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c這3個字符.
4. 布爾類型
布爾值只有True、False兩個值,返回值要么是True,要么是False,在Python中,可以直接用True、False表示布爾值(請注意大小寫),也可以通過布爾運算計算出來。
布爾值可以用and、or和not運算。
and運算是與運算,只有所有都為 True,and運算結果才是 True。
or運算是或運算,只要其中有一個為 True,or 運算結果就是 True。
not運算是非運算,它是一個單目運算符,把 True 變成 False,False 變成 True。
5. 列表(List)
Python內置的一種數據類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。比如,列出班里所有同學的名字,就可以用一個list表示:
['Andy', 'Kobe', 'Yao']
list是數學意義上的有序集合,也就是說,list中的元素是按照順序排列的。
構造list非常簡單,按照上面的代碼,直接用 [ ] 把list的所有元素都括起來,就是一個list對象。通常,我們會把list賦值給一個變量,這樣,就可以通過變量來引用list:
classmates = ['Andy', 'Kobe', 'Yao']
由于Python是動態語言,所以list中包含的元素并不要求都必須是同一種數據類型,我們完全可以在list中包含各種數據:
L = ['Michael', 100, True]
一個元素也沒有的list,就是空list:
empty_list = []
6. 元組(Tuple)
tuple是另一種有序的列表,中文翻譯為“ 元組 ”。tuple 和 list 非常類似,但是,tuple一旦創建完畢,就不能修改了。
同樣是表示班里同學的名稱,用tuple表示如下:
t = ('Andy', 'Kobe', 'Yao')
創建tuple和創建list唯一不同之處是用( )替代了[ ]。
7. 字典(Dict)
我們已經知道,list 和 tuple 可以用來表示順序集合,例如,班里同學的名字:
['Andy', 'Kobe', 'Yao']
或者考試的成績列表:
[95, 85, 59]
但是,要根據名字找到對應的成績,用兩個 list 表示就不方便。
如果把名字和分數關聯起來,組成類似的查找表:
'Andy' ==> 95
'Kobe' ==> 85
'Bart' ==> 59
給定一個名字,就可以直接查到分數。
Python的 dict 就是專門干這件事的。用 dict 表示“名字”-“成績”的查找表如下:
d = {
'Adam': 95,
'Lisa': 85,
'Yao': 59
}
我們把名字稱為key,對應的成績稱為value,dict就是通過 key 來查找 value。
花括號 {} 表示這是一個dict,然后按照 key: value, 寫出來即可。最后一個 key: value 的逗號可以省略。
8. 集合(Set)
dict的作用是建立一組 key 和一組 value 的映射關系,dict的key是不能重復的。有的時候,我們只想要 dict 的 key,不關心 key 對應的 value,目的就是保證這個集合的元素不會重復,這時,set就派上用場了。
set 持有一系列元素,這一點和 list 很像,但是set的元素沒有重復,而且是無序的,這點和 dict 的 key很像。
創建 set 的方式是調用 set() 并傳入一個 list,list的元素將作為set的元素:
s = set(['A', 'B', 'C'])
請注意,上述打印的形式類似 list, 但它不是 list,仔細看還可以發現,打印的順序和原始 list 的順序有可能是不同的,因為set內部存儲的元素是無序的。