Python3變量類型
變量是什麼東西?只不過是保留在存儲器位置的存儲值。這意味着,當我們創建一個變量,需要在內存中保留一些空間。
基於變量的數據類型,解釋器會分配對應的內存,並決定什麼可以存儲在保留內存中。因此,通過爲變量分配不同的數據類型,可以存儲這些變量在整數,小數或字符的形式。
賦值給變量
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」這幾個值分別分配給counter,miles和 name 變量。這將產生以下結果-
100
1000.0
John
多重賦值
Python允許同時分配一個值給幾個變量。例如 -
a = b = c = 1
這裏,一個整數對象使用數值1來創建,並且所有三個變量都分配到相同的存儲器位置。也可以將多個對象同時分配多個變量。例如 -
a, b, c = 1, 2, "john"
這裏,兩個整數對象使用值1和2分別指定給變量a和b,以及「john」字符串對象值賦給變量c。
標準數據類型
存儲在內存中的數據可以是多種類型的。例如,一個人的年齡可存儲爲數值,而他或她的地址則可存儲爲字母、數字和字符。Python有用於定義存儲方法操作的各種標準數據類型。
Python 有五個標準數據類型 -
數字
字符串
列表
元組
字典
Python數字
數字數據類型存儲數值。當分配一個值給創建數值對象。 例如−
var1 = 1
var2 = 10
您也可以通過使用 del 語句刪除引用的那一個數字對象。del 語句的語法是 -
del var1[,var2[,var3[....,varN]]]]
可以通過使用del語句刪除單個或多個對象。例如 -
del var
del var_a, var_b
Python支持四種不同的數字類型 -
int (有符號整數)
float (浮點實數值)
complex (複數)
在Python3所有整數表示爲長整型。因此,沒有單獨爲long的整數類型。
示例
下面是數字的例子 -
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 爲一組連續的引號表示的字符。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列表
列表是最通用的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']
Python元組
元組是另一個序列數據類型,它類似於列表。元組中使用單個逗號來分隔每個值。不像列表,元組的值是放列在圓括號中。
列表和元組之間的主要區別是:列表是包含在方括號[]中,並且它們的元素和大小是可以改變的,而元組元素是括在括號()中,不能進行更新。元組可以被認爲是隻讀的列表。例如 -
#!/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字典
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)
轉換整數成爲八進制字符串