在Python中,所有的資料型別都是類,每一個變數都是類的例項。
Python中有6種標準資料型別:數字(Number)、字串(String)、列表(List)、元組(Tuple)、集合(Sets)和字典(Dictionary)。
1.數字型別
Python中數字型別:整數型別、浮點型別和複數型別。
1.1 整數型別(int)
Python整數型別為int,整數型別的範圍可以很大,可以表示很大的整數,只受所在計算機硬體的限制。
Python 3 不再區分整數和長整數,所有需要的整數都可以是長整數。
預設情況下,一個整數值表示十進位制數。其它進位制的表示方式:
◊ 二進位制數:以0b或0B為字首。(注:0為阿拉伯數字)
◊ 八進位制數:以0o或0O為字首。(注:第一個字元是阿拉伯數字0,第二個字元是英文字母o或O)
◊ 十六進位制數:以0x或0X為字首。(注:0為阿拉伯數字)
>>> 28 28 >>> 0b11100 28 >>> 0o34 28 >>> 0x1C 28
1.2 浮點型別(float)
浮點型別用來儲存小數數值,Python中浮點型別為float,Python只支援雙精度的浮點型別,且與本機有關。
浮點型別可以使用小數表示,也可以使用科學計數法表示。科學計數法中使用大寫或小寫的e表示10的指數,如e2表示102。
>>> 1.0 1.0 >>> 3.6e2 360.0 >>> 3.6e-2 0.036
1.3 複數型別
複數由實數部分和虛數部分構成,可以使用 a + bj 或 complex(a, b) 表示,複數的實部a和虛部b都是浮點型別。
Python中複數型別為complex。
>>> 1 + 2j (1+2j) >>> complex(1,2) (1+2j) >>> complex(1,2) + complex(1,2) (2+4j)
1.4 布林型別
Python中布林型別為bool,bool是int的子類。bool型別只有兩個值:True和False。
任何型別資料都可以通過bool()函式轉換為布林值,“沒有的”或“空的”值會轉換為False,反之轉換為True。如:None(空物件)、False、0、0.0、0j(複數)、''(空字串)、[](空列表)、()(空元組)和 {}(空字典)這些值會轉換為False,否則是True。
>>> bool(0) False >>> bool(1) True >>> bool('') False >>> bool(' ') True >>> bool(None) False >>> bool([]) False >>> bool({}) False
2.資料型別轉換
Python資料型別轉換包括隱式型別轉換和顯式型別轉換。
2.1 隱式型別轉換
隱式型別轉換規則:
運算元1型別 | 運算元2型別 | 轉換後的型別 |
布林 | 整數 | 整數 |
布林、整數 | 浮點 | 浮點 |
>>> a = 1 + True >>> a 2 >>> type(a) <class 'int'> >>> a = 1.0 + 1 >>> a 2.0 >>> type(a) <class 'float'> >>> a = 1.0 + True >>> a 2.0 >>> type(a) <class 'float'> >>> a = 1.0 + 1 + True >>> a 3.0 >>> type(a) <class 'float'>
2.2 顯式型別轉換
顯式型別轉換函式:
(1)int(x):將x轉換為一個整數。可以將布林、浮點轉換為整數。
布林值:True轉換為1,False轉換為0;
浮點數值:轉換後截掉小數部分。
>>> int(True) 1 >>> int(False) 0 >>> int(12.6) 12
(2)float(x):轉換為一個浮點數。可以將布林值、整數轉換為浮點。
布林值:True轉換為1.0,False轉換為0.0;
整數值:轉換後加上小數部分“.0”。
>>> float(True) 1.0 >>> float(False) 0.0 >>> float(1) 1.0
(3)complex(x):將x轉換為一個複數,實數部分為x,虛數部分為0。
>>> complex(1)
(1+0j)
complex(x, y):將x和y轉換為一個複數,實數部分為x,虛數部分為y。
>>> complex(1, 2)
(1+2j)