基于變量的數(shù)據(jù)類型,解釋器會(huì)分配對(duì)應(yīng)的內(nèi)存,并決定什么可以存儲(chǔ)在保留內(nèi)存中。因此,通過為變量分配不同的數(shù)據(jù)類型,可以存儲(chǔ)這些變量在整數(shù),小數(shù)或字符的形式。
Python變量不需要顯式聲明保留內(nèi)存空間。當(dāng)賦值給一個(gè)變量這些聲明自動(dòng)發(fā)生。等號(hào)(=)是用來賦值給變量。
#!/usr/bin/python3 counter = 100 # An integer assignment miles = 1000.0 # A floating point name = "John" # A string print (counter) print (miles) print (name)
100 1000.0 John
a = b = c = 1
這里,一個(gè)整數(shù)對(duì)象使用數(shù)值1來創(chuàng)建,并且所有三個(gè)變量都分配到相同的存儲(chǔ)器位置。也可以將多個(gè)對(duì)象同時(shí)分配多個(gè)變量。例如 -
a, b, c = 1, 2, "john"
這里,兩個(gè)整數(shù)對(duì)象使用值1和2分別指定給變量a和b,以及“john”字符串對(duì)象值賦給變量c。
存儲(chǔ)在內(nèi)存中的數(shù)據(jù)可以是多種類型的。例如,一個(gè)人的年齡可存儲(chǔ)為數(shù)值,而他或她的地址則可存儲(chǔ)為字母、數(shù)字和字符。Python有用于定義存儲(chǔ)方法操作的各種標(biāo)準(zhǔn)數(shù)據(jù)類型。
字符串
列表
元組
字典
數(shù)字?jǐn)?shù)據(jù)類型存儲(chǔ)數(shù)值。當(dāng)分配一個(gè)值給創(chuàng)建數(shù)值對(duì)象。 例如?
var1 = 1 var2 = 10
您也可以通過使用 del 語句刪除引用的那一個(gè)數(shù)字對(duì)象。del 語句的語法是 -
del var1[,var2[,var3[....,varN]]]]
del var del var_a, var_b
int (有符號(hào)整數(shù))
float (浮點(diǎn)實(shí)數(shù)值)
complex (復(fù)數(shù))
int | float | complex |
---|---|---|
10 | 0.0 | 3.14j |
100 | 15.20 | 45.j |
-786 | -21.9 | 9.322e-36j |
080 | 32.3+e18 | .876j |
-0490 | -90. | -.6545+0J |
-0x260 | -32.54e100 | 3e+26J |
0x69 | 70.2-E12 | 4.53e-7j |
復(fù)數(shù)由一對(duì)有序組成,通過 x + yj 來表示實(shí)浮點(diǎn)數(shù), 其中 x 和 y 是實(shí)數(shù)并且 j 是虛數(shù)單位。
字符串在 Python 為一組連續(xù)的引號(hào)表示的字符。Python允許對(duì)單引號(hào)或雙引號(hào)對(duì)。 字符串子集可以用切片操作符 ([ ] and [:] ) :字符串的索引從0開始,并以-1結(jié)束。加號(hào)(+)號(hào)是字符串連接運(yùn)算符和星號(hào)(*)是重復(fù)操作符。例如 -
#!/usr/bin/python3 str = 'Hello World!' print (str) # Prints complete string print (str[0]) # Prints first character of the string print (str[2:5]) # Prints characters starting from 3rd to 5th print (str[2:]) # Prints string starting from 3rd character print (str * 2) # Prints string two times print (str + "TEST") # Prints concatenated string
Hello World! H llo llo World! Hello World!Hello World! Hello World!TEST
列表是最通用的Python復(fù)合數(shù)據(jù)類型。列表中包含用逗號(hào)分隔并使用方括號(hào)[]來包含項(xiàng)目。從某種程度上講,列表類似于C語言中的數(shù)組。一個(gè)較大的區(qū)別是,所有在一個(gè)列表中的項(xiàng)目可以是不同的數(shù)據(jù)類型。
存儲(chǔ)在一個(gè)列表中的值可以使用切片操作符([]和[:])進(jìn)行訪問:列表的0索引位置為起點(diǎn)位置,并在以-1 結(jié)束。 加號(hào)(+)號(hào)是列表中連接運(yùn)算,星號(hào)(*)是重復(fù)操作符。例如 -
#!/usr/bin/python3 list = [ 'abcd', 786 , 2.23, 'john', 70.2 ] tinylist = [123, 'john'] print (list) # Prints complete list print (list[0]) # Prints first element of the list print (list[1:3]) # Prints elements starting from 2nd till 3rd print (list[2:]) # Prints elements starting from 3rd element print (tinylist * 2) # Prints list two times print (list + tinylist) # Prints concatenated lists
['abcd', 786, 2.23, 'john', 70.200000000000003] abcd [786, 2.23] [2.23, 'john', 70.200000000000003] [123, 'john', 123, 'john'] ['abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john']
元組是另一個(gè)序列數(shù)據(jù)類型,它類似于列表。元組中使用單個(gè)逗號(hào)來分隔每個(gè)值。不像列表,元組的值是放列在圓括號(hào)中。
列表和元組之間的主要區(qū)別是:列表是包含在方括號(hào)[]中,并且它們的元素和大小是可以改變的,而元組元素是括在括號(hào)()中,不能進(jìn)行更新。元組可以被認(rèn)為是只讀的列表。例如 -
#!/usr/bin/python3 tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 ) tinytuple = (123, 'john') print (tuple) # Prints complete tuple print (tuple[0]) # Prints first element of the tuple print (tuple[1:3]) # Prints elements starting from 2nd till 3rd print (tuple[2:]) # Prints elements starting from 3rd element print (tinytuple * 2) # Prints tuple two times print (tuple + tinytuple) # Prints concatenated tuple
('abcd', 786, 2.23, 'john', 70.200000000000003) abcd (786, 2.23) (2.23, 'john', 70.200000000000003) (123, 'john', 123, 'john') ('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john')
#!/usr/bin/python3 tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 ) list = [ 'abcd', 786 , 2.23, 'john', 70.2 ] tuple[2] = 1000 # Invalid syntax with tuple list[2] = 1000 # Valid syntax with list
Python字典是一種哈希表類型。它們工作的方式就類似在Perl中關(guān)聯(lián)數(shù)組或哈希、鍵-值對(duì)。字典的鍵可以是幾乎任何Python類型,但通常是數(shù)字或字符串。另一方面,它的值可以是任意Python對(duì)象。
#!/usr/bin/python3 dict = {} dict['one'] = "This is one" dict[2] = "This is two" tinydict = {'name': 'john','code':6734, 'dept': 'sales'} print (dict['one']) # Prints value for 'one' key print (dict[2]) # Prints value for 2 key print (tinydict) # Prints complete dictionary print (tinydict.keys()) # Prints all the keys print (tinydict.values()) # Prints all the values
This is one This is two {'dept': 'sales', 'code': 6734, 'name': 'john'} ['dept', 'code', 'name'] ['sales', 6734, 'john']
字典中沒有元素順序(排序)的概念。這是不正確的說,元素是“亂序”; 它們僅僅是無序的。
有時(shí),可能需要執(zhí)行內(nèi)置類型之間的轉(zhuǎn)換。要在類型之間轉(zhuǎn)換,只需使用類型名稱作為函數(shù)。
有幾個(gè)內(nèi)置函數(shù)從一種數(shù)據(jù)類型轉(zhuǎn)換到另一個(gè)。這些函數(shù)返回代表轉(zhuǎn)換后的值的新對(duì)象。
函數(shù) | 描述 |
---|---|
int(x [,base]) |
轉(zhuǎn)換x為整數(shù)。x是字符串則 base 為指定的基數(shù)
|
float(x) |
轉(zhuǎn)換x為一個(gè)浮點(diǎn)數(shù)
|
complex(real [,imag]) |
創(chuàng)建一個(gè)復(fù)數(shù)
|
str(x) |
轉(zhuǎn)換對(duì)象x為字符串表示
|
repr(x) |
轉(zhuǎn)換對(duì)象x為表達(dá)式字符串
|
eval(str) |
計(jì)算一個(gè)字符串,并返回一個(gè)對(duì)象
|
tuple(s) |
轉(zhuǎn)換s為一個(gè)元組
|
list(s) |
轉(zhuǎn)換s為一個(gè)列表 |
set(s) |
轉(zhuǎn)換s為一個(gè)集合 |
dict(d) |
創(chuàng)建一個(gè)字典。 d必須是(鍵,值)元組序列
|
frozenset(s) |
轉(zhuǎn)換s為冷凍集
|
chr(x) |
將一個(gè)字符轉(zhuǎn)換為整數(shù)
|
unichr(x) |
Unicode字符轉(zhuǎn)換為整數(shù)
|
ord(x) |
單個(gè)字符其轉(zhuǎn)換為整數(shù)值
|
hex(x) |
十六進(jìn)制字符串轉(zhuǎn)換為整數(shù)
|
oct(x) |
轉(zhuǎn)換整數(shù)成為八進(jìn)制字符串 |