基於變數的資料型別,直譯器會分配對應的記憶體,並決定什麼可以儲存在保留記憶體中。因此,通過為變數分配不同的資料型別,可以儲存這些變數在整數,小數或字元的形式。
Python變數不需要顯式宣告保留記憶體空間。當賦值給一個變數這些宣告自動發生。等號(=)是用來賦值給變數。
#!/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
這裡,一個整數物件使用數值1來建立,並且所有三個變數都分配到相同的儲存器位置。也可以將多個物件同時分配多個變數。例如 -
a, b, c = 1, 2, "john"
這裡,兩個整數物件使用值1和2分別指定給變數a和b,以及「john」字串物件值賦給變數c。
儲存在記憶體中的資料可以是多種型別的。例如,一個人的年齡可儲存為數值,而他或她的地址則可儲存為字母、數位和字元。Python有用於定義儲存方法操作的各種標準資料型別。
字串
列表
元組
字典
數位資料型別儲存數值。當分配一個值給建立數值物件。 例如?
var1 = 1 var2 = 10
您也可以通過使用 del 語句刪除參照的那一個數位物件。del 語句的語法是 -
del var1[,var2[,var3[....,varN]]]]
del var del var_a, var_b
int (有符號整數)
float (浮點實數值)
complex (複數)
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 |
複數由一對有序組成,通過 x + yj 來表示實浮點數, 其中 x 和 y 是實數並且 j 是虛數單位。
字串在 Python 為一組連續的引號表示的字元。Python允許對單引號或雙引號對。 字串子集可以用切片操作符 ([ ] and [:] ) :字串的索引從0開始,並以-1結束。加號(+)號是字串連線運算子和星號(*)是重複操作符。例如 -
#!/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複合資料型別。列表中包含用逗號分隔並使用方括號[]來包含專案。從某種程度上講,列表類似於C語言中的陣列。一個較大的區別是,所有在一個列表中的專案可以是不同的資料型別。
儲存在一個列表中的值可以使用切片操作符([]和[:])進行存取:列表的0索引位置為起點位置,並在以-1 結束。 加號(+)號是列表中連線運算,星號(*)是重複操作符。例如 -
#!/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']
元組是另一個序列資料型別,它類似於列表。元組中使用單個逗號來分隔每個值。不像列表,元組的值是放列在圓括號中。
列表和元組之間的主要區別是:列表是包含在方括號[]中,並且它們的元素和大小是可以改變的,而元組元素是括在括號()中,不能進行更新。元組可以被認為是唯讀的列表。例如 -
#!/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中關聯陣列或雜湊、鍵-值對。字典的鍵可以是幾乎任何Python型別,但通常是數位或字串。另一方面,它的值可以是任意Python物件。
#!/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']
字典中沒有元素順序(排序)的概念。這是不正確的說,元素是「亂序」; 它們僅僅是無序的。
有時,可能需要執行內建型別之間的轉換。要在型別之間轉換,只需使用型別名稱作為函式。
有幾個內建函式從一種資料型別轉換到另一個。這些函式返回代表轉換後的值的新物件。
函式 | 描述 |
---|---|
int(x [,base]) |
轉換x為整數。x是字串則 base 為指定的基數
|
float(x) |
轉換x為一個浮點數
|
complex(real [,imag]) |
建立一個複數
|
str(x) |
轉換物件x為字串表示
|
repr(x) |
轉換物件x為表示式字串
|
eval(str) |
計算一個字串,並返回一個物件
|
tuple(s) |
轉換s為一個元組
|
list(s) |
轉換s為一個列表 |
set(s) |
轉換s為一個集合 |
dict(d) |
建立一個字典。 d必須是(鍵,值)元組序列
|
frozenset(s) |
轉換s為冷凍集
|
chr(x) |
將一個字元轉換為整數
|
unichr(x) |
Unicode字元轉換為整數
|
ord(x) |
單個字元其轉換為整數值
|
hex(x) |
十六進位制字串轉換為整數
|
oct(x) |
轉換整數成為八進位制字串 |