1. 程式人生 > >python資料型別——數字

python資料型別——數字

整型 Integers

整型運算,加減乘:

2 + 2
4
3 - 4
-1
4 * 5
20

Python 2.7中,整型的運算結果只能返回整型,除法的結果也不例外。

例如12 / 5返回的結果並不是2.4,而是2:

12 / 5
2

冪指數:

2 ** 5
32

取餘:

32 % 5
2

賦值給變數:

a = 1
a
1

使用type()函式來檢視變數型別:

type(a)
int

整型數字的最大最小值:

在 32 位系統中,一個整型 4 個位元組,最小值 -2,147,483,648,最大值 2,147,483,647

在 64 位系統中,一個整型 8 個位元組,最小值 -9,223,372,036,854,775,808

,最大值 9,223,372,036,854,775,807

import sys
sys.maxint
2147483647

長整型 Long Integers

當整型超出範圍時,Python會自動將整型轉化為長整型,不過長整型計算速度會比整型慢。

a = sys.maxint + 1
print type(a)
<type 'long'>

長整型的一個標誌是後面以字母L結尾:

a
2147483648L

可以在賦值時強制讓型別為長整型:

b = 1234L
type(b)
long

長整型可以與整型在一起進行計算,返回的型別還是長整型:

a - 4
2147483644L

浮點數 Floating Point Numbers

a = 1.4
type(a)
float

在之前的除法例子12 / 5中,假如想要使返回的結果為2.4,可以將它們寫成浮點數的形式:

12.0 / 5.0
2.4
12 / 5.0
2.4
12.0 / 5
2.4

上面的例子說明,浮點數與整數進行運算時,返回的仍然是浮點數:

5 + 2.4
7.4

浮點數也可以進行與整數相似的運算,甚至可以取餘:

3.4 - 3.2
0.19999999999999973
12.3 + 32.4
44.7
2.5 ** 2
6.25
3.4 % 2.1
1.2999999999999998

Python的浮點數標準與CJava一致,都是IEEE 754 floating point standard

注意看 3.4 - 3.2 的結果並不是我們預期的0.2,這是因為浮點數本身儲存方式引起的,浮點數本身會存在一點誤差。

事實上,Python 中儲存的值為'0.199999999999999733546474089962430298328399658203125',因為這是最接近0.2的浮點數。|

'{:.52}'.format(3.4 - 3.2)
'0.199999999999999733546474089962430298328399658203125'

當我們使用print顯示時,Python會自動校正這個結果

print 3.4 - 3.2
0.2

可以用sys.float_info來檢視浮點數的資訊:

import sys
sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)

例如浮點數能表示的最大值:

sys.float_info.max
1.7976931348623157e+308

浮點數能表示的最接近0的值:

sys.float_info.min
2.2250738585072014e-308

浮點數的精度:

sys.float_info.epsilon
2.220446049250313e-16

複數 Complex Numbers

Python 使用 j 來表示複數的虛部:

a = 1 + 2j
type(a)
complex

可以檢視它的實部,虛部以及共軛:

a.real
1.0
a.imag
2.0
a.conjugate()
(1-2j)

互動計算

可以將複雜的表示式放在一起計算:

1 + 2 - (3 * 4 / 6) ** 5 + 7 % 5
-27

Python中運算是有優先順序的,優先順序即算術的先後順序,比如“先乘除後加減”和“先算括號裡面的”都是兩種優先順序的規則,優先順序從高到低排列如下:

  • ( ) 括號
  • ** 冪指數運算
  • * / // % 乘,除,整數除法,取餘運算
  • '+ -' 加減

整數除法,返回的是比結果小的最大整數值:

12.3 // 5.2
2.0
12.3 // -4
-4.0

簡單的數學函式

絕對值:

abs(-12.4)
12.4

取整:

round(21.6)
22.0

最大最小值:

print min(2, 3, 4, 5)
print max(2, 4, 3)
2
4

變數名覆蓋

不要用內建的函式來命名變數,否則會出現意想不到的結果:

type(max)
builtin_function_or_method

不要這樣做!!!

max = 1
type(max)
int
max(4, 5)
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-41-c60446be959c> in <module>()
----> 1 max(4, 5)


TypeError: 'int' object is not callable

型別轉換

浮點數轉整型,只保留整數部分:

print int(12.324)
print int(-3.32)
12
-3

整型轉浮點型:

print float(1.2)
1.2

其他表示

除了10進位制外,整數還有其他型別的表示方法。

科學計數法:

1e-6
1e-06

16進位制,前面加0x修飾,後面使用數字0-9A-F:

0xFF
255

8進位制,前面加0或者0o修飾,後面使用數字0-7:

067
55

2進位制,前面加0b修飾,後面使用數字0或1:

0b101010
42

原地計算 In-place

Python可以使用下面的形式進行原地計算:

b = 2.5
b += 2
print b
b *= 2
print b
b -= 3
print b
4.5
9.0
6.0

布林型 Boolean Data Type

布林型可以看成特殊的二值變數,其取值為TrueFalse

q = True
type(q)
bool

可以用表示式構建布林型變數:

q = 1 > 2
print q
False

常用的比較符號包括:

<, >, <=, >=, ==, !=

Python支援鏈式比較:

x = 2 
1 < x <= 3
True

本人對於Python學習建立了一個小小的學習圈子,為各位提供了一個平臺,大家一起來討論學習Python。歡迎各位到來Python學習群:923414804一起討論視訊分享學習。Python是未來的發展方向,正在挑戰我們的分析能力及對世界的認知方式,因此,我們與時俱進,迎接變化,並不斷的成長,掌握Python核心技術,才是掌握真正的價值所在。