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的浮點數標準與C,Java一致,都是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
布林型可以看成特殊的二值變數,其取值為True
和False
:
q = True
type(q)
bool
可以用表示式構建布林型變數:
q = 1 > 2
print q
False
常用的比較符號包括:
<, >, <=, >=, ==, !=
Python支援鏈式比較:
x = 2
1 < x <= 3
True
本人對於Python學習建立了一個小小的學習圈子,為各位提供了一個平臺,大家一起來討論學習Python。歡迎各位到來Python學習群:923414804一起討論視訊分享學習。Python是未來的發展方向,正在挑戰我們的分析能力及對世界的認知方式,因此,我們與時俱進,迎接變化,並不斷的成長,掌握Python核心技術,才是掌握真正的價值所在。