1. 程式人生 > >《Python核心編程》數字類型

《Python核心編程》數字類型

功能 通過 pen 運行 popu import blog 字典 var

1、數字類型簡單介紹

  • Python中數字類型包含:整型、長整型、布爾型、雙精度浮點型、十進制浮點型、復數。這些數字類型都是不可變類型。也就是說,改變了數字的值會生成新的對象。

  • 在Python中刪除數字對象,能夠用語句:del aInt,aLong,aFloat,aComplex


2、整型

  • 布爾型

    取值範圍唯獨兩個值。True和False。

    它們在數學運算中相應1和0.

    對於值為0的不論什麽數字或空集(空列表、空元組、空字典等)在Python中的布爾值都是False。

  • 長整型

    在其它編程語言中,比方C++中。int占用了32位。long int則取決於機器字長,long long int為64位。而在Python中。標準整型一般也是占用32位。可是假設在64位機器上用64位的編譯器編譯Python。則整型占用64位。

    Python中長整型能夠支持的範圍非常大,只取決機器支持的虛擬內存大小。長整型的聲明:直接在數字後加L:12345L

    Python中整型與長整型逐漸統一為一種,所以使用時不用去關心整型還是長整型。



3、雙精度浮點型

Python中的浮點型相似C中的double型,是雙精度浮點型。占用64位。



4、復數

Python中的復數類型規定:

  • 復數由實數部分和虛數部分構成:real + imagj
  • 虛數部分不能單獨存在,必須與0.0的實數部分一起構成復數
  • 實數部分real和虛數部分imag都是浮點類型。
  • 復數類型有三個內建屬性: real、imag、conjugate(返回共軛復數)
>>> aComplex = 1.0 + 2.0j
>>> aComplex.real
1.0
>>> aComplex.imag
2.0
>>> aComplex.conjugate()
(1-2j)


5、操作符

自己主動類型轉換

當對兩個不同類型的數進行操作時。Python會自己主動進行類型轉換。

主要的原則就是:整型轉換為浮點型,非復數轉換為復數。


真正的除法 vs 地板除

如今Python的版本號中調用除號“/”,運行的都是真正的除法:

>>> 1/2
0.5
>>> 
1.0/2.0 0.5

另外另一種除法叫做地板除,它無論操作數為何種類型,總是舍去小數部分,能夠通過符合“//”實現:

>>> 1.0//2.0
0.0

冪運算

通過操作符 ** 實現,註意各種符號的優先級,或者直接通過括號()消除優先級帶來的歧義:

>>> -2**4
-16
>>> (-2)**4
16

位操作符

Python整型支持標準位運算:取反 ~ 、按位與 & 、按位或 | 、按位異或^ 、左移<< 、右移>>



6、工廠函數

  • 標準類型函數如cmp()、str()、type()
  • 數字類型函數
    • 轉換工廠函數:int()、long()、float、conplex()
    • 功能函數:
      • abs(num),返回絕對值
      • corece(num1,num2)將num1、num2轉換為同類型,然後以元組形式返回
      • divmod(num1,num2),返回(num1/num2,num1%num2)
      • pow(num1,num2),實現num1**num2
      • round(flt,ndig=0),對浮點數flt四舍五入,保存ndig位小數。默覺得0。
  • 僅用於整型的函數
    • 進制轉換函數,oct()、hex()
    • ASCII轉換函數
      • chr()接受一個單字節整型值,返回相應的字符
      • ord()接受一個字符。返回相應的整型值
>>> chr(97)
‘a‘
>>> ord(‘a‘)
97


7、相關模塊

  • decimal 十進制浮點運算類 Decimal
  • array 高效數值數組
  • math/cmath 標準C庫數學運算函數。常規數學運算在math中,復數運算在cmath中
  • operator 數學操作符的函數實現,比方 operator.sub(2,1)相當於2-1
  • random 多種偽隨機數生成器
>>> import operator
>>> operator.sub(2,1)
1
>>> import random
>>> random.randint(0,10)
3
>>> random.randint(0,10)
7


轉載請註明出處:http://blog.csdn.net/u012162613/article/details/44286655

《Python核心編程》數字類型