1. 程式人生 > >python數字類型

python數字類型

python基礎知識

在python中,數據采用了對象的形式(無論是python內置對象還是使用python工具和像C語言自行創建的對象)。

Python數字類型工具:

  1. 整數和浮點數

  2. 復數

  3. 固定精度的十進制數

  4. 有理分數

  5. 集合

  6. 布爾類型

  7. 無窮的整數類型

  8. 各種數字內置函數和模塊


python數字類型在程序中的顯示方式之一是作為常量(還有一個是調用模塊使用函數):

數字 常量

12,-12 整數

1.23 浮點數

0o177,0x9ff,0b0000100 八進制、十六進制、二進制

3+4j 復數


內置數學工具和擴展:

表達式操作符

+-*/>>**&

內置數學函數

pow,abs,round,int等

公共模塊

random,math等

表達式是大多數數字類型的基本工具。


在實際應用中的數字:

變量和基本的表達式

變量和對象不一樣,無需聲明

變量在給它第一次賦值時創建

變量在表達式中使用將被替換為他們的值

變量在表達式中使用時需要先賦值,否則會報錯。

常用表達式1、簡單加減乘除:

>>> a=4

>>> b=5

>>> a+b,a-b

(9, -1)

>>> a*3,b/2

(12, 2.5)

>>> a%3,b**2

(1, 25)

>>> a<b

True

>>> a>b

False

>>> a==b

False


常用表達式二、除法:真除法、Floor除法

x/y:在python3.0中是真除法,無論任何類型都會保留小數部分。

>>> 5/1

5.0

>>> 9/3

3.0

x//y:截掉余數並針對數字類型保留類型

>>> 5//3

1

>>> 9//2

4

>>> 5.0//3

1.0

>>> 5//2.0,5//-2.0

(2.0, -3.0)

整數精度,在python3.0中整數可以使用無窮的長度,只要內存足夠大。


常用表達式三、十六進制、八進制、二進制計數

>>> 0o7,0o11,0o377

(7, 9, 255)

>>> 0x01,0xF,0xFF

(1, 15, 255)

>>> 0b1,0b1000,0b11111111

(1, 8, 255)

>>> oct(64),hex(64),bin(64) 將十進制轉換為八進制、十六進制、二進制函數

('0o100', '0x40', '0b1000000')

int函數將一個數字字符串變換成一個整數,第二個數字是指定的數字的進制。

>>> int('64'),int('100',8),int('40',16),int('1000000',2)

( 64, 64, 64, 64)


常用表達式四、復數

>>> 2+2j

(2+2j)

以上介紹了核心數據類型:整數、浮點、復數,他們是通過常量表達式創建的,接下來介紹其他數據類型。

1、小數數字,是通過導入模塊調用函數後創建的,使用小數數字有固定的精度浮點值。

>>> from decimal import Decimal

>>> Decimal('0.2')+Decimal('0.01')

Decimal('0.21')

a、設置全局精度

>>> import decimal

>>> decimal.Decimal(1)/decimal.Decimal(7)

Decimal('0.1428571428571428571428571429')

>>> decimal.getcontext().prec=4 #通過調用decimal模塊的getcontext函數指定保留小數位數,來指定精度

>>> decimal.Decimal(1)/decimal.Decimal(7)

Decimal('0.1429')

b、設置臨時精度

>>> import decimal

>>> decimal.Decimal('1.00')/decimal.Decimal('7.00')

Decimal('0.1428571428571428571428571429')

>>> with decimal.localcontext() as ctx: #通過調用decimal模塊的localcontext函數臨時保留小數位數

... ctx.prec=2

... decimal.Decimal('1.00')/decimal.Decimal('7.00')

...

Decimal('0.14')

>>> decimal.Decimal(1)/decimal.Decimal(7)

Decimal('0.1428571428571428571428571429')

2、分數類型(fraction)

類似小數數字,也是通過模塊的導入後函數創建。

>>> from fractions import Fraction

>>> x=Fraction(1,4)

>>> x

Fraction(1, 4)

>>> print(x)

1/4

也可以通過浮點數創建

>>> Fraction(.25)

Fraction(1, 4)

>>> Fraction('.25')

Fraction(1, 4)

3、集合

集合是無序的且不會將鍵匹配到值,既不是序列也不是映射類型。使用內置函數set來創建集合類型。

註:一個項只能在集合中出現一次。最重要的一個使用原因。。

>>> set('sspa')

{'a', 's', 'p'}

以下是創建集合的方式:

通用方式

>>> x=set('abcde')

>>> y=set('efghj')

>>> x,y

({'e', 'b', 'd', 'c', 'a'}, {'j', 'f', 'h', 'e', 'g'})

>>> x-y

{'c', 'd', 'a', 'b'}

>>> x|y

{'j', 'f', 'h', 'e', 'b', 'd', 'g', 'c', 'a'}

>>> x&y

{'e'}

3.0的添加方式:

>>> set([1,2,3,4])

{1, 2, 3, 4}

>>> set(['spam'])

{'spam'}

>>> set('spam')

{'m', 'a', 's', 'p'}

>>> set() #空集合必須使用set創建

set()

>>>

4、布爾型

true和false

python數字類型