Python3 基礎(chǔ)數(shù)據(jù)類型概覽
每一門語言中有鹿,都有相應(yīng)的基礎(chǔ)數(shù)據(jù)類型來支撐起該門語言的框架吊奢,就如同骨骼較之于人一般茉继±秃玻基礎(chǔ)數(shù)據(jù)類型,就是已經(jīng)存在于內(nèi)存中的系統(tǒng)對(duì)象的類型馒疹。那么Python3中,有哪些基礎(chǔ)數(shù)據(jù)類型呢乙墙?
Python3中颖变,有六種標(biāo)準(zhǔn)的數(shù)據(jù)類型:
- Number(數(shù)字)
- String (字符串)
- List (列表)
- Tuple (元組)
- Set (集合)
- Dictionary (字典)
其中,這六種標(biāo)準(zhǔn)數(shù)據(jù)類型中听想,可分為可變數(shù)據(jù)類型和不可變數(shù)據(jù)類型:
- 不可變數(shù)據(jù)類型:Number(數(shù)字)腥刹、String(字符串)、Tuple(元組)
- 可變數(shù)據(jù)類型:List(列表)衔峰、Dictionary(字典)、Set(集合)
可變數(shù)據(jù)類型和不可變數(shù)據(jù)類型之間有什么區(qū)別呢垫卤?
不可變的數(shù)據(jù)類型,指向的是內(nèi)存上的一塊分配的固定內(nèi)存穴肘。如變量a = 1,變量b = 1舔痕。由于1是Number型评抚,是不可變的數(shù)字類型,那么在內(nèi)存中慨代,會(huì)分配一個(gè)固定的內(nèi)存指向的是1,所以這時(shí)候的變量a和變量b侍匙,其實(shí)是指向同一塊內(nèi)存地址。
可變的數(shù)據(jù)類型叮雳,指向的是內(nèi)存上的不同的內(nèi)存丈积。如變量a = [1, 2], 變量b = [1, 2]筐骇。由于List型是可變的數(shù)據(jù)類型,所以即使列表里的元素都一樣铛纬,如都是[1, 2]唬滑,系統(tǒng)也會(huì)分配不同的內(nèi)存告唆。所以這邊晶密,變量a和變量b分別指向各自的內(nèi)存地址,而非仍是同一個(gè)地址稻艰。
Number(數(shù)字)
Python3支持的數(shù)字類型有懂牧,int尊勿、float、bool元扔、complex(復(fù)數(shù))。
int
int為長(zhǎng)整數(shù)類型途事。與其他接觸過的語言不同擅羞,如OC中的int型尸变,代表整數(shù)類型减俏,在內(nèi)存中,占4個(gè)字節(jié)骑晶,而long long類型則是代表長(zhǎng)整型草慧,在內(nèi)存中占8個(gè)字節(jié)桶蛔。Python3中的int型漫谷,就如OC中的long long一樣,在內(nèi)存中占8個(gè)字節(jié)。
(占4個(gè)字節(jié)與占8個(gè)字節(jié)电抚,決定了數(shù)字能覆蓋范圍的大惺病)
float
float為浮點(diǎn)型。浮點(diǎn)型就類似于我們的小數(shù)一般公给,如3.1415926。
bool
bool為布爾類型淌铐,為int型的子類。在Python3中际起,bool類型有兩個(gè)值吐葱,True和False。其中唇撬,True == 1展融, False == 0。
這邊切記告希,判斷bool型的時(shí)候,直接用True和False即可喝噪,不能用True == 1或False == 0判斷指么,因?yàn)椋?br>
True == 1 # True
False == 0 # True
complex
complex更傾向于一個(gè)函數(shù),將在后續(xù)的文章中詳解伯诬。
String(字符串)
Python3中,字符串都是用(')或雙引號(hào)(")括起來表示盗似。(單引號(hào)與雙引號(hào)并無區(qū)別)
每個(gè)字符串,其實(shí)可以看成是一個(gè)存放字符的元組悍及,那么字符串中,便可以使用元組中的許多方法心赶,如:截取、索引等等届谈。
同時(shí)使用反斜杠()轉(zhuǎn)義特殊字符弯汰。如:
print('Drink')
打印為結(jié)果為
Drink
print('D\rink')
打印結(jié)果為:
D
rink
如果你不想讓反斜杠發(fā)生轉(zhuǎn)義、可以在字符串前面添加一個(gè)r咏闪,表示原始字符串:
print(r'D\rink')
打印結(jié)果為:
D\rink
注意:
- 反斜杠可以用來轉(zhuǎn)義,使用r可以讓反斜杠不發(fā)生轉(zhuǎn)義
- 字符串可以用+運(yùn)算符連接在一起纵装,用*運(yùn)算符重復(fù)
- Python中的字符串有兩種索引方式据某,從左往右以0開始橡娄,從右往左以-1開始
- Python中的字符串癣籽,是一個(gè)不可變數(shù)據(jù)類型,所以不能改變
List(列表)
List(列表)是Python3中使用最頻繁的數(shù)據(jù)類型瓶籽。如我們的商城網(wǎng)站埂材,其中的類目、商品列表俏险、設(shè)置等七七八八的內(nèi)容,其實(shí)都是一個(gè)個(gè)列表數(shù)據(jù)糙俗。
List(列表)中的元素類型可以不同预鬓,比如可以把Number巧骚、String、List竣蹦、Dict等等數(shù)據(jù)類型沧奴,全部放入一個(gè)列表中。(但是原則上不推薦這么做滔吠。盡可能保持列表中數(shù)據(jù)類型的一致性,有利于后期開發(fā)的數(shù)據(jù)處理疮绷。
List(列表),一般用方括號(hào)來表示椅贱,如list = [1, 2, 3]中只冻,[1, 2, 3]就是一個(gè)列表。
List(列表)中內(nèi)置了很多方法喜德,后續(xù)會(huì)用專門的一篇文章來說明。
注意:
- List的元素寫在方括號(hào)中間航棱,以逗號(hào)隔開
- 和字符串一樣贱呐,List可以被索引(index)和切片
- List可以使用+操作符進(jìn)行拼接
- List中的元素是可以改變的入桂。
Tuple(元組)
Tuple(元組)與List類似,但他們的區(qū)別在于抗愁,Tuple為不可變數(shù)據(jù)類型,List為可變數(shù)據(jù)類型蜘腌。因此,List中的查詢函數(shù)沮脖,在Tuple中,大多都能用勺届,而List中的增、刪饼酿、改函數(shù)胚膊,在Tuple中故俐,全部不可用紊婉。
Tuple(元組),一般用小括號(hào)來表示刚陡,如tuple = (1, 2, 3)中株汉,(1, 2, 3)就是一個(gè)元組。
注意:
- 與字符串一樣乔妈,元組的元素不能修改
- 元組也可以被索引和切片,方法同List一樣
- 注意構(gòu)造包含0或1個(gè)元素的元組的特殊語法規(guī)則
- 元組也可以使用+操作符進(jìn)行拼接
Set(集合)
Set(集合)是一個(gè)無序不重復(fù)元素的序列勃刨」傻基本用于進(jìn)行成員關(guān)系測(cè)試和刪除重復(fù)元素。
Set(集合)用大括號(hào){}或者set()函數(shù)創(chuàng)建唯灵。如:set = set{1, 2, 3}。
特別注意:創(chuàng)建一個(gè)空集合必須用set()垢揩,而不是{}吞杭。因?yàn)閧}是用來創(chuàng)造一個(gè)空字典的锋勺。
Dictionary(字典)
Dictionary(字典)是Python中另一個(gè)非常有用的內(nèi)置數(shù)據(jù)類型。列表是有序?qū)ο蠹喜越值涫菬o序?qū)ο蠹稀烧咧暗膮^(qū)別在于衙猪,字典是用通過鍵來存取的布近,而不是通過偏移(索引)存取的。
字典是一種映射類型撑瞧,一般用{}來標(biāo)識(shí)。它的無序鍵值對(duì)一邊標(biāo)識(shí)如下key(鍵):value(值)订咸。
注意
- 字典是一種映射類型酬诀,它的元素是鍵值對(duì)
- 字典的關(guān)鍵字必須為不可變類型,且不能重復(fù)
- 創(chuàng)建空字典使用{}