Python 變數和資料型別
在本節中, 我們將來學習 Python 中的變數和資料型別。
Python 變數
變數是具有名稱和值 (一些資料) 的記憶體位置。
變數具有唯一的名稱, 以便來區分不同的記憶體位置。它們具有同識別符號相同的命名規則。
在 Python 中, 在使用該變數之前不需要宣告變數 (指定資料型別)。如果要新建變數, 只需賦予該變數一個有效的名稱, 並使用賦值運算子為其賦值。變數的資料型別將根據分配給它的值的型別自動來定義。
變數賦值
賦值運算子 =
用於為變數分配數值。Python 中,你可以為變數分配任何型別的值。
下面的程式碼是賦值運算子的例子,你可以將不同的資料類似賦值給變數。
x = 3
y = 4.124
z = "Python"
這裡有整形、浮點和字串變數。
多重賦值
你也可以在單個 Python 語句中將值分配給多個變數。這稱為多重賦值。比如下面的例子,
x, y, z = 2, 4.124, "Python"
這裡 2 被分配給 x
,4.124 被分配給 y
,字串 Python
被分配給 z
。
如果你想為不同的變數賦於相同的值,你可以這樣來寫:
x = y = z = "Blue"
現在三個變數都是相等的。
Python 資料型別
每當你為變數賦值時, 變數的資料型別也隨之確定下來。Python 是物件導向的程式設計, Python 中的所有的元素都是物件。
在 Python 中, 變數的資料型別實際上是類, 其中的變數是例項 (物件)。
下面是 Python 中的一些資料型別:
數字
整數、浮點和複數等數字都是 Python 數字。在 Python 中, 整數由 int
表示、浮點用 float
表示,以及複數用 complex
類來表示。
內建函式 type()
可用於檢查變數的資料型別或變數所屬的類。
內建函式 isinstance()
可用於檢查物件是否是特定的類的例項或其子類別。它的第一個引數是物件本身, 第二個是要與之進行比較的資料型別。
x = 3
print("type of", x, "is", type(x))
x = 3.23
print("type of", x, "is", type(x))
x = 3 + 3j
print("is", x, "a complex number:", isinstance(x, complex))
type of 3 is <class 'int'>
type of 3.23 is <class 'float'>
is (3+3j) a complex number: True
列表 list
列表是(不同的)資料型別的元素的有序序列。你可以使用方括號 []
在建立列表,並在方括號內使用逗號分隔列表項。
x = [2, 4.5, "blue"]
要訪問列表的成員,可以使用在 Python 中被稱為切片運算子的索引訪問運算子 []
。列表元素的索引從 0 開始。下面來舉個例子,
x = [2, 4, 6, 8, 10]
print("x[0] =", x[0]) # 列印第一個元素
print("x[0:2] =", x[0:2]) # 列印前兩個元素,位於索引位置 0 和 1
print("x[2:] =", x[2:]) # 列印從索引位置 2 開始的所有元素
x[0] = 2
x[0:2] = [2, 4]
x[2:] = [6, 8, 10]
Python 列表中的專案可以更改的(更新,刪除,新增)。換句話說,Python 列表是可變的。
元組 tuple
元組也是與列表類似的一種有序序列。元組和列表之間的重要區別是元組元素是不可變的。你可以用小括號 ()
來定義一個 Python 元組,元素間用逗號分隔:
x = (3, "pink", 3 + 8j)
print("x[0] =", x[0])
print("x[0:2] =", x[0:2])
x[0] = 4
x[0] = 3
x[0:2] = (3, 'pink')
TypeError: 'tuple' object does not support item assignment
字串 String
字串是一個字元序列。可以使用單引號或雙引號來建立字串,還可以使用三重引號來建立多行字串。
x = "String of characters"
x = """Multiline
string"""
你可以通過切片操作符來訪問字串裡面的元素,也就是字元資料。
x = "Python Programming"
print("x[0] =", x[0])
print("x[4:15] =", x[4:15])
x[4] = "l"
x[0] = P
x[4:15] = on Programm
TypeError: 'str' object does not support item assignment
集合 Set
Python 集合中的每個元素都是唯一的,並且集合是無序的元素列表。Python 中的集合可以使用大括號 {}
來建立,而元素之間用逗號分隔。
x = {3, 5, 7, 2, 4, 5}
print(x) # 列印集合
print(type(x)) # 檢視變數 x 的資料型別
{2, 3, 4, 5, 7}
<class 'set'>
字典 Dictionary
Python 字典是 Python 的一種原生資料型別,它的元素是鍵-值對。一個字典包含無序的元素。如果你知道鍵,那就可以檢索出對應的資料或值。
可以使用大括號 {}
將每個元素都作為包含鍵和值的對來建立字典。Python 字典中的鍵和值可以是任何型別,但其中鍵的資料型別必須是不可變型別的,比如字串元組等,列表是不能作為 Python 字典元素裡的鍵的。
下面來舉些例子,
x = {1: "blue", "key": "pink"}
print(type(x))
print("x[1] = ", x[1])
print("x['key'] =", x["key"])
<class 'dict'>
x[1] = blue
x['key'] = pink
型別轉換
Python 變數可以轉換為其他的資料型別變數,例如,可以將 int
資料型別轉換為浮點資料型別 float
。對於型別轉換,你可以使用像 int()
,float()
,str()
等轉換函式來進行資料轉換。
x = 8
print("Value of x = ", int(x))
print("Value of x = ", float(x))
Value of x = 8
Value of x = 8.0
如果你想將 float
值轉換為 int
值,那麼小數部分將被捨棄。
>>> y = 3.4
>>> print("Converting float to int:", int(y))
Converting float to int: 3
如果要將字串資料型別轉換為另一種型別,則必須提供相容的資料,否則你將得到一個 ValueError
。
>>> print("Converting string to float:", float('33.9'))
Converting string to float: 33.9
>>> print("Converting string to float:", float('text'))
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
float('a')
ValueError: could not convert string to float: text
你可以將一個序列轉換為另一個序列,例如,使用 list()
,set()
,tuple()
等函式完成集合,元組或列表等的轉換。
print(set([4, 5, 6]))
print(tuple({8, 9, 10}))
print(list("Python"))
{4, 5, 6}
(8, 9, 10)
["P", "y", "t", "h", "o", "n"]