標籤:file 實值型別 對象 pytho 嵌套 lock 數值 資料類型 tin
標準資料類型
Python3 中有六個標準的資料類型:
- Number(數字)
- String(字串)
- List(列表)
- Tuple(元組)
- Set(集合)
- Dictionary(字典)
Python3 的六個標準資料類型中:
- 不可變資料(3 個):Number(數字)、String(字串)、Tuple(元組);
- 可變資料(3 個):List(列表)、Dictionary(字典)、Set(集合)。
# 多個變數賦值"""Python允許你同時為多個變數賦值"""a = b = c = 1# 以上執行個體,建立一個整型對象,值為 1,從後向前賦值,三個變數都指向同一個記憶體位址#為多個對象建立多個變數a, b, c = 1, 2, "runoob"
Number(數字)
Python3 支援 int、float、bool、complex(複數)。
在Python 3裡,只有一種整數類型 int,表示為長整型,沒有 python2 中的 Long。
像大多數語言一樣,數實值型別的賦值和計算都是很直觀的。
內建的 type() 函數可以用來查詢變數所指的物件類型。
a, b, c, d = 20, 5.5, True, 4+3jprint(type(a), type(b), type(c), type(d))<class ‘int‘> <class ‘float‘> <class ‘bool‘> <class ‘complex‘>
此外還可以用 isinstance 來判斷:
isinstance(a, int)
isinstance 和 type 的區別在於:
- type()不會認為子類是一種父類類型。
- isinstance()會認為子類是一種父類類型。
注意:在 Python2 中是沒有布爾型的,它用數字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定義成關鍵字了,但它們的值還是 1 和 0,它們可以和數字相加。
Number操作
>>>5 + 4 # 加法9>>> 4.3 - 2 # 減法2.3>>> 3 * 7 # 乘法21>>> 2 / 4 # 除法,得到一個浮點數0.5>>> 2 // 4 # 除法,得到一個整數0>>> 17 % 3 # 取餘 2>>> 2 ** 5 # 乘方32
幾點提示:
- 1、Python可以同時為多個變數賦值,如a, b = 1, 2。
- 2、一個變數可以通過賦值指向不同類型的對象。
- 3、數值的除法包含兩個運算子:/ 返回一個浮點數,// 返回一個整數。
- 4、在混合計算時,Python會把整型轉換成為浮點數。
String(字串)
Python中的字串用單引號 ‘ 或雙引號 " 括起來,同時使用反斜線 \ 轉義特殊字元。
字串的截取的文法格式如下:
str = ‘Runoob‘ print (str) # 輸出字串print (str[0:-1]) # 輸出第一個到倒數第二個的所有字元print (str[0]) # 輸出字串第一個字元print (str[2:5]) # 輸出從第三個開始到第五個的字元print (str[2:]) # 輸出從第三個開始的後的所有字元print (str * 2) # 輸出字串兩次print (str + "TEST") # 連接字串
運行結果:
RunoobRunooRnoonoobRunoobRunoobRunoobTEST
Python 使用反斜線(\)轉義特殊字元,如果你不想讓反斜線發生轉義,可以在字串前面添加一個 r,表示原始字串:
print(‘Ru\noob‘)Ruoobprint(r‘Ru\noob‘)Ru\noob
另外,反斜線(\)可以作為續行符,表示下一行是上一行的延續。也可以使用 """...""" 或者 ‘‘‘...‘‘‘ 跨越多行。
注意,Python 沒有單獨的字元類型,一個字元就是長度為1的字串。
word = ‘Python‘print(word[0], word[5])P nprint(word[-1], word[-6])n P
與 C 字串不同的是,Python 字串不能被改變。向一個索引位置賦值,比如word[0] = ‘m‘會導致錯誤。
注意:
- 1、反斜線可以用來轉義,使用r可以讓反斜線不發生轉義。
- 2、字串可以用+運算子串連在一起,用*運算子重複。
- 3、Python中的字串有兩種索引方式,從左往右以0開始,從右往左以-1開始。
- 4、Python中的字串不能改變。
List(列表)
List(列表) 是 Python 中使用最頻繁的資料類型。
列表可以完成大多數集合類的資料結構實現。列表中元素的類型可以不相同,它支援數字,字串甚至可以包含列表(所謂嵌套)。
列表是寫在方括弧 [] 之間、用逗號分隔開的元素列表。
和字串一樣,列表同樣可以被索引和截取,列表被截取後返回一個包含所需元素的新列表。
列表截取的文法格式如下:
加號 + 是列表串連運算子,星號 * 是重複操作。如下執行個體:
list = [ ‘abcd‘, 786 , 2.23, ‘runoob‘, 70.2 ]tinylist = [123, ‘runoob‘] print (list) # 輸出完整列表print (list[0]) # 輸出資料行表第一個元素print (list[1:3]) # 從第二個開始輸出到第三個元素print (list[2:]) # 輸出從第三個元素開始的所有元素print (tinylist * 2) # 輸出兩次列表print (list + tinylist) # 串連列表
以上執行個體輸出結果:
[‘abcd‘, 786, 2.23, ‘runoob‘, 70.2]abcd[786, 2.23][2.23, ‘runoob‘, 70.2][123, ‘runoob‘, 123, ‘runoob‘][‘abcd‘, 786, 2.23, ‘runoob‘, 70.2, 123, ‘runoob‘]
與Python字串不一樣的是,列表中的元素是可以改變的!
List內建了有很多方法,例如append()、pop()等等,這在後面會講到。
注意:
- 1、List寫在方括弧之間,元素用逗號隔開。
- 2、和字串一樣,list可以被索引和切片。
- 3、List可以使用+操作符進行拼接。
- 4、List中的元素是可以改變的。
Tuple(元組)
元組(tuple)與列表類似,不同之處在於元組的元素不能修改。元組寫在小括弧 () 裡,元素之間用逗號隔開。
元組中的元素類型也可以不相同:
tuple = ( ‘abcd‘, 786 , 2.23, ‘runoob‘, 70.2 )tinytuple = (123, ‘runoob‘) print (tuple) # 輸出完整元組print (tuple[0]) # 輸出元組的第一個元素print (tuple[1:3]) # 輸出從第二個元素開始到第三個元素print (tuple[2:]) # 輸出從第三個元素開始的所有元素print (tinytuple * 2) # 輸出兩次元組print (tuple + tinytuple) # 串連元組
以上執行個體輸出結果:
(‘abcd‘, 786, 2.23, ‘runoob‘, 70.2)abcd(786, 2.23)(2.23, ‘runoob‘, 70.2)(123, ‘runoob‘, 123, ‘runoob‘)(‘abcd‘, 786, 2.23, ‘runoob‘, 70.2, 123, ‘runoob‘)
元組與字串類似,可以被索引且下標索引從0開始,-1 為從末尾開始的位置。也可以進行截取(看上面,這裡不再贅述)。
其實,可以把字串看作一種特殊的元組。
tup = (1, 2, 3, 4, 5, 6)print(tup[0])1print(tup[1:5])(2, 3, 4, 5)tup[0] = 11 # 修改元組元素的操作是非法的Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: ‘tuple‘ object does not support item assignment
雖然tuple的元素不可改變,但它可以包含可變的對象,比如list列表。
構造包含 0 個或 1 個元素的元組比較特殊,所以有一些額外的文法規則:
tup1 = () # 空元組tup2 = (20,) # 一個元素,需要在元素後添加逗號
string、list和tuple都屬於sequence(序列)。
注意:
- 1、與字串一樣,元組的元素不能修改。
- 2、元組也可以被索引和切片,方法一樣。
- 3、注意構造包含0或1個元素的元組的特殊文法規則。
- 4、元組也可以使用+操作符進行拼接。
Python 3 基礎資料型別 (Elementary Data Type)