180131—【Python初識 D7】數字

數字簡介

Python 數字 數據類型用於存儲數值,它是不可改變類型,這就意味着如果改變 數字 數據類型的值,將重新分配內存空間。

所支持的類型

Python 支持四種不同的數值類型:

1.整型(Int)

python中的整型有幾種類型:

布爾型

True 與 False 注意首字母大寫!!

標準整型

Python的標準整型等價於C的(有符號)長整型(看看!)
一般以十進制表示,但也支持八和十六進制,其表示規定常規。

長整型

前面也提到過,python之中的長整型幾乎沒有範圍限制,僅僅與計算機支持的虛擬內存有關。
長整型是整型數的超集,可表示極大的數,最後是一個大寫或小寫的L。(爲了避免與數字1混淆,通常使用大寫L)(注意:python3中已經沒有長整型了)

2.雙精度浮點型

Python中的浮點型類似於C中的double類型,是雙精度浮點型。可直接用十進制或科學計數法表示(2.5e2 = 2.5 x 10的2 = 250)每個佔8個字節。
採用標準IEEE754號規範,52個位用於表示底,11個用於表示指數,剩下一個表示符號。

3.複數

對沒錯我們支持複數!
複數由實數部分和虛數部分構成,
可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都支持浮點型。
複數對象擁有數據屬性。三個內建函數:
num.real 返回實部
num.imag 返回虛部
num.conjugate() 返回共軛複數

操作符

不同數據類型的數

支持不同類型之間的數進行計算,會自己做強制類型轉換,轉化規則同C:

  • 如果有一個數是複數,則另一個操作數被轉換爲複數;
  • 否則,如果有一個是浮點型,則另一個操作數被轉換爲浮點型;
  • 否則,如果有一個是長整型,則另一個操作數被轉換爲長整型;
  • 否則,倆都是普通整型,無需轉換。

另外有強制類型轉換函數:coerce(),其參數有兩個,可按上述規則轉換數:

>>> coerce(1.3,134L)
(1.3, 134.0)
>>> 

其餘類型轉換:

int(x [,base ])x轉換爲一個整數  
long(x [,base ])x轉換爲一個長整數  
float(x )x轉換到一個浮點數  
complex(real [,imag ])  創建一個複數  
str(x )                 將對象 x 轉換爲字符串  
repr(x )                將對象 x 轉換爲表達式字符串  
eval(str )              用來計算在字符串中的有效Python表達式,並返回一個對象  
tuple(s )               將序列 s 轉換爲一個元組  
list(s )                將序列 s 轉換爲一個列表  
chr(x )                 將一個整數轉換爲一個字符  
unichr(x )              將一個整數轉換爲Unicode字符  
ord(x )                 將一個字符轉換爲它的整數值  
hex(x )                 將一個整數轉換爲一個十六進制字符串  
oct(x )                 將一個整數轉換爲一個八進制字符串

特殊的算術操作符:

除法:

在python中講除法,要有三個概念:

  • 傳統除法
  • 地板除法
  • 真正除法
地板除法:

這個在之前學C的時候還喫過不少虧。
所謂地板除法,即取比商小的最大整型作爲除法運算的結果。
比如:5除以2等於2.5,但在地板除法中會取2。
在C++中,這是對兩個操作數都爲整型時做的事。

真正除法:

也就是正常的除法,5除以2等於2.5,那就是2.5。
我們都知道之前想這樣的話,5和2至少有一個得寫成浮點型數,否則只會得到2

傳統除法:

也就是C和早期python使用的方式。其原理就是,當兩個操作數均爲整型時採取地板除,有一個數是浮點才採取真正的除法。是兩個方法的組合

python採取的除法

Python中的除法運算有兩個符號:“/” 和 “//”,
在2.7版本中,/ 時採取傳統除法,//時採取地板除。
在3.6版本中,/ 時採取真正的除法,//時爲地板除。
這裏寫圖片描述

冪運算:

冪運算操作符和一元操作符之間的優先級關係比較特別:

  • 冪運算操作符比 左 側操作數的一元操作符優先級 高 ;
  • 冪運算操作符比 右 側操作數的一元操作符優先級 低 ;
>>> -3**2     #先執行冪運算再取負;
-9
>>> 4**-.5    #先執行右邊的複數再進行冪運算
0.5
>>> 4**-1
0.25

位運算

先補個課:
瞭解一下位運算的意義。
Python的整型數據支持標準的位運算:取反(~)、按位與(&)、或(|)、異或(^),左右移(<<和>>)

內建函數和工廠函數因爲概念還有一絲模糊,所以不冒昧拋出。

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