本節我們開始學習python的資料型別,
什么是資料型別呢?前面我們提過,所謂的編程,就是控制一系列的資料去完成我們預設的邏輯或者功能,所以,編程語言首先要定義一系列對“資料”的處理規則,這些處理規則包括:如何存盤資料、資料的長度、資料的賦值、資料的讀取、資料的顯示、資料的比較等等,
不同型別的資料,它們的這些處理規則是不一樣的,比如:整數和小數在記憶體中的存盤方式肯定是不一樣的;小數有精度的操作,而字串肯定是沒有的,
因此,編程語言需要對我們用到的所有資料進行分類,抽象出一些基本的型別,這就是編程語言定義的資料型別,
不同的編程語言所定義的資料型別其實大同小異,所以你只要理解了python的資料型別,其它編程語言的資料型別也基本都能搞明白,
Python3 中定義了七個標準的資料型別:
- l Number(數字)
- l String(字串)
- l Bytes(位元組)
- l List(串列)
- l Tuple(元組)
- l Set(集合)
- l Dictionary(字典)
下面我們結合一些實體,依次學習這幾個標準型別,
Number(數字)
建議通過視頻來學習本節內容: 查看本節視頻
數學中的數字包括整數、小數,python中也對應定義了整型(int)和浮點型(float),另外還定義了復數型別(complex)和布爾型(bool),
- Int:它定義了一個整數型別,在C語言中,有很多不同的整型,如下表:

不同的型別,有不同的存盤大小和取值范圍,超出這個范圍就會溢位報錯,Python明顯簡化了這一型別,所有的整數型別,不論正負不論大小,全都歸一為int型別,Python2還保留了long型別,python3把long型別也去掉了,
我們可以使用不同的方法表示一個int型別的資料,如下所示:
1 # int 型別 2 3 int_1 = 100 # 10進制正數 4 int_2 = -69 # 10進制負數 5 int_3 = 0x77 # 16進制正數 6 int_4 = -0x24 # 16進制負數 7 int_5 = 0o70 # 8進制正數 8 int_6 = -0o70 # 8進制負數 9 int_7 = 0b10 # 2進制正數 10 int_8 = -0b10 # 2進制負數
上面提到了進制,我們先花幾分鐘了解一下“進制”的概念,看下面這張圖:

Python中使用0b開頭表示二進制(bin)、0o開頭表示八進制(oct)、0x開頭表示十六進制(hex),我們平時用得比較多的,是十進制(dec)、十六進制、二進制,八進制用得比較少,十六進制由于是滿16進位,所以大于10的位用字母表示,10-15依次是a-f,不區分大小寫,
進制是數值的不同表達方式,不同進制之間可以相互轉換,參考下面的實體:
1 # file: ./6/6_1.py 2 3 # 進制表達和轉換 4 temp_value = https://www.cnblogs.com/tiger-python/p/32904 5 6 print(" 十進制:{}\n 二進制:{}\n 八進制:{}\n 十六進制:{}\n" 7 .format(temp_value, bin(temp_value), oct(temp_value), hex(temp_value)))
輸出為:
十進制:32904
二進制:0b1000000010001000
八進制:0o100210
十六進制:0x8088
- Float:它定義了一個小數型別,在編程語言中,我們習慣把小數叫做浮點數,所以float是浮點型,同樣,python簡化了浮點型的定義,不論數值大小以及精度,都歸一為float型別,Python中有多種方式來表示一個浮點數,如下:
1 # float 型別 2 3 float_1 = 17.18 # 正浮點數 4 float_2 = -17.18 # 負浮點數 5 float_3 = 7.99E+3 # 科學計數正數 6 float_4 = -7.99E+3 # 科學計數負數 7 float_5 = 7.99E-3 # 科學計數 8 float_6 = 7.99E3 # 科學計數 9 float_7 = 198. # 等同于198.0
- Complex:復數是由一個實數和一個虛陣列合構成,表示為:x+yj,其中 x 是實數部分,y 是虛數部分,實數和虛數都是float型別資料,虛數部分必須有后綴j或者J,
1 # file: ./5/5_2.py 2 3 # complex 型別 4 cpx_1 = 123.2+34.6j 5 6 print(cpx_1) 7 print('real: type %s, value %f' % (type(cpx_1.real), cpx_1.real)) 8 print('imag: type %s, value %f' % (type(cpx_1.imag), cpx_1.imag))
輸出為:
(123.2+34.6j)
real: type <class 'float'>, value 123.200000
imag: type <class 'float'>, value 34.600000
- Bool:布爾型別只有兩個值,True和False,它們對應值為1和0,Python2中沒有真正的布爾型別,使用1和0替代,Python3中明確定義了關鍵詞True和False,注意大小寫,
1 # file: ./5/5_3.py 2 3 # bool 型別 4 bool_1 = True 5 bool_2 = False 6 7 print(bool_1) 8 print(bool_2) 9 print(int(bool_1)) # 強轉為int型別 10 print(int(bool_2)) # 強轉為int型別
輸出為:
True
False
1
0
下一節我們開始學習String型別,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/150269.html
標籤:Python
上一篇:LeetCode 98. 驗證二叉搜索樹 | Python
下一篇:常見演算法
