學(xué)習(xí)一門語言,往往都是從Hello World
開始。 但是在一個黑框框中輸出一個
“
你好,世界
”
并沒有什么了不起,要看透事物的本質(zhì),熟悉一門語言,就要了解其底層,就是我們常常說的基礎(chǔ)。本文將從python
中的變量類型開始,為大家詳細介紹這門語言,同時也希望對想
學(xué)習(xí)python開發(fā)的同學(xué)有所幫助
。
五大標準數(shù)據(jù)類型
在內(nèi)存中存儲的數(shù)據(jù)可以有多種類型。
例如,
一個人的名字可以用字符來存儲,
年齡可以用數(shù)字來存儲,
愛好可以用集合來存儲等等。
Python
有五個標準的數(shù)據(jù)類型:
· Numbers
(數(shù)字)
· String
(字符串)
· List
(列表)
· Tuple
(元組)
· Dictionary
(字典)
其中屬于集合類型的數(shù)據(jù)類型有
列表、元組及字典
。
0x00. 數(shù)字(Numbers)
數(shù)字數(shù)據(jù)類型用于存儲數(shù)值。
他們是不可改變的數(shù)據(jù)類型,這意味著改變數(shù)字數(shù)據(jù)類型會分配一個新的對象。
當(dāng)你指定一個值時,Number
對象就會被創(chuàng)建:
var1 = 1var2 = 2
del
語句刪除一些對象的引用,其語法是:
del var1[,var2[,var3[....,varN]]]]
通過使用del
語句可以刪除單個或多個對象的引用。例如:
del var1
del var1, var2
四種不同的數(shù)字類型:
· int
(有符號整型)
· long
(長整型
[
也可以代表八進制和十六進制
)
· float
(浮點型)
· complex
(復(fù)數(shù))
a. int(整型)
在32
位機器上,整數(shù)的位數(shù)為
32
位,取值范圍為
-2**31
~
2**31-1
,即
-2147483648
~
2147483647
在64
位系統(tǒng)上,整數(shù)的位數(shù)為
64
位,取值范圍為
-2**63
~
2**63-1
,即
-9223372036854775808
~
9223372036854775807
b. long
(長整型)
跟C
語言不同,
Python
的長整數(shù)沒有指定位寬,即:
Python
沒有限制長整數(shù)數(shù)值的大小,但實際上由于機器內(nèi)存有限,長整數(shù)數(shù)值不可能無限大。
注意,自從Python2.2
起,如果整數(shù)發(fā)生溢出,
Python
會自動將整數(shù)數(shù)據(jù)轉(zhuǎn)換為長整數(shù),所以如今在長整數(shù)數(shù)據(jù)后面不加字母
L
也不會導(dǎo)致嚴重后果了。
c. float(浮點型)
浮點數(shù)用來處理實數(shù),即帶有小數(shù)的數(shù)字。類似于C
語言中的
double
類型,占
8
個字節(jié)(
64
位),其中
52
位表示底,
11
位表示指數(shù),剩下的一位表示符號。
d. complex
(復(fù)數(shù))
復(fù)數(shù)由實數(shù)部分和虛數(shù)部分組成,一般形式為x
+
yj
,其中的
x
是復(fù)數(shù)的實數(shù)部分,
y
是復(fù)數(shù)的虛數(shù)部分,這里的
x
和
y
都是實數(shù)。
注:Python
中存在小數(shù)字池:
-5
~
257
小整數(shù)對象——小整型對象池
在實際編程中,數(shù)值比較小的整數(shù),比如1,2,29
等,可能會非常頻繁的出現(xiàn)。而在
python
中,所有的對象都存在于系統(tǒng)堆上。想想?如果某個小整數(shù)出現(xiàn)的次數(shù)非常多,那么
Python
將會出現(xiàn)大量的
malloc/free
操作,這樣大大降低了運行效率,而且會造成大量的內(nèi)存碎片,嚴重影響
Python
的整體性能。
在Python2.5
乃至
3.3
中,將小整數(shù)位于
[-5,257)
之間的數(shù),緩存在小整型對象池中。
0x01. 字符串(String)
字符串或串(String)
是由數(shù)字、字母、下劃線組成的一串字符。
它是編程語言中表示文本的數(shù)據(jù)類型。
Python
的字串列表有
2
種取值順序
:
·
從左到右索引默認
0
開始的,最大范圍是字符串長度少
1
·
從右到左索引默認
-1
開始的,最大范圍是字符串開頭
如果你要實現(xiàn)從字符串中獲取一段子字符串的話,可以使用變量
[頭下標:尾下標
,就可以截取相應(yīng)的字符串,其中下標是從 0
開始算起,可以是正數(shù)或負數(shù),下標可以為空表示取到頭或尾。
比如:
s = 'i love python'
s[2:6]
的結(jié)果是
love
。(顧頭不顧尾,或左閉右開)
操作實例:
str = 'Hello World'
print(str) #
輸出完整字符串
print(str[0]) #
輸出字符串中的第一個字符
print(str[2:5]) #
輸出字符串中第三個至第五個之間的字符
print(str[2:]) #
輸出從第三個開始到最后的字符串
print(str*2) #
輸出字符串兩次
print('say: ' + str) #
輸出連接的字符串
0x02. 列表(List)
List
(列表) 是
Python
中使用最頻繁的數(shù)據(jù)類型。
列表可以完成大多數(shù)集合類的數(shù)據(jù)結(jié)構(gòu)實現(xiàn)。它支持字符,數(shù)字,字符串甚至可以包含列表(所謂嵌套)。
操作實例:
list = ['apple', 'jack', 798, 2.22, 36]
otherlist = [123, 'xiaohong']
print(
list) #
輸出完整列表
print(
list[0]) #
輸出列表第一個元素
print(
list[1:3]) #
輸出列表第二個至第三個元素
print(
list[2:]) #
輸出列表第三個開始至末尾的所有元素
print(otherlist * 2) #
輸出列表兩次
print(
list + otherlist) #
輸出拼接列表
0x03. 元祖(Tuple)
元組是另一個數(shù)據(jù)類型,類似于List
(列表)。
元組用"()"
標識。內(nèi)部元素用逗號隔開。但是元組不能二次賦值,相當(dāng)于只讀列表。
操作實例與列表相似
0x04. 字典(Dictionary)
字典(dictionary)
是除列表以外
Python
之中最靈活的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類型。列表是有序的對象結(jié)合,字典是無序的對象集合。
兩者之間的區(qū)別在于:字典當(dāng)中的元素是通過鍵來存取的,而不是通過偏移存取。
字典用"{ }"
標識。字典由索引
(key)
和它對應(yīng)的值
value
組成。
操作實例:
dict = {}
dict[‘one’] = 'This is one'
dict[2] = 'This is two'
tinydict = {'name':'john','code':5762,'dept':'sales'}
print(dict['one']) #
輸出鍵為
'one'
的值
print(dict[2]) #
輸出鍵為
2
的值
print(tinydict) #
輸出完整的字典
print(tinydict.keys()) #
輸出所有鍵
print(tinydict.values()) #
輸出所有值
來源:博客園