python數據類型之數字

布爾型

bool型只有兩個值:True和False

之所以將bool值歸類爲數字,是因爲我們也習慣用1表示True,0表示False。

整型

Python中的整數屬於int類型,默認用十進制表示,此外也支持二進制,八進制,十六進制表示方式。

進制轉換

儘管計算機只認識二進制,但是爲了迎合我們的習慣,python中的數字默認還是十進制。還提供了一些方法來幫助我們做轉換。比如是進制轉換爲二進制使用bin方法,在轉換結果前面還會加上‘0b’表示是一個二進制書。

既然十進制可以轉換爲二進制,那麼其實使用同樣的原理也可以轉換爲其他進制,python也爲我們提供了十進制轉換成八進制和十六進制的方法,分別是oct和hex。八進制前面以‘0o’標示,十六進制以‘0x’標示

>>> bin(10)
'0b1010'
>>> oct(10)
'0o12'
>>> hex(10)
'0xa'

取餘運算(%)

>>> 5%2
1
>>> 16%4
0
>>> 16%7
2

算術運算(+ - * / // divmod **)

>>> 2+3
5
>>> 2-3
-1
>>> 2*3
6
>>> 3/2
1.5
>>> 3//2
1
>>> divmod(16,3)
(5, 1)
>>> 2**3
8

浮點型

浮點數是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體的說,這個實數由一個整數定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數爲10的科學計數法

Python的浮點數就是數學中的小數

在運算中,整數與浮點數運算的結果也是一個浮點數

爲什麼要叫做float浮點型?

浮點數也就是小數,之所以稱爲浮點數,是因爲按照科學記數法表示時,
一個浮點數的小數點位置是可變的,比如,
1.23*109和12.3*108是相等的。
浮點數可以用數學寫法,如1.23,3.14,-9.01,等等。但是對於很大或很小的浮點數,就必須用科學計數法表示,把10用e替代:
1.23*109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。
整數和浮點數在計算機內部存儲的方式是不同的,整數運算永遠是精確的而浮點數運算則可能會有四捨五入的誤差。


關於小數不精準問題

Python默認的是17位精度,也就是小數點後16位,儘管有16位,但是這個精確度卻是越往後越不準的。

首先,這個問題不是隻存在在python中,其他語言也有同樣的問題

其次,小數不精準是因爲在轉換成二進制的過程中會出現無限循環的情況,在約省的時候就會出現偏差。

複數

從上面的圖中我們就可以看出,複數complex是由實數和虛數組成的

要了解複數,其實關於複數還需要先了解虛數。虛數(就是虛假不實的數):平方爲複數的數叫做虛數。

複數是指能寫成如下形式的數a+bi,這裏a和b是實數,i是虛數單位(即-1開根)。在複數a+bi中,a稱爲複數的實部,b稱爲複數的虛部(虛數是指平方爲負數的數),i稱爲虛數單位。

當虛部等於零時,這個複數就是實數;當虛部不等於零時,這個複數稱爲虛數。

注,虛數部分的字母j大小寫都可以。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章