問題:
1. Python數值有哪些?
2. 各類型的精度是多少?
3. 類型的轉換是如何實作的?
5. 如何使用這些資料類型?需要注意什麼?
6. 什麼是不可變類型?
數值類型:
整型: (不可變類型)
标準整型:取值範圍[-sys.maxint-1, sys.maxint]
長整型:可表示無限大的整數,其值僅與你機器支援的(虛拟)記憶體大小有關
數值超出标準整型範圍将會轉換為長整型。
例如:
1.定義标準整型
>>> import sys
>>> a = sys.maxint
>>> a
2147483647
2.将a的值加1
>>> a=sys.maxint+1
2147483648L
布爾型:(不可變類型)
取值範圍:True 和 False 分布對應整型的1和0
對bool值區分大小寫
>>>a=true
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined
浮點型:
類似c語言中的double,每個浮點型數值占8個位元組(64位)
精度:
>>> 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, epsi
lon=2.220446049250313e-16, radix=2, rounds=1)
複數:
Python中關于複數的幾個概念:
1.虛數不能單獨存在,它們總是和一個值為0.0的實數部分一起來構成一個複數
2.複數由實數部分和虛數部分構成
3.表示複數的文法:real+imagej
4.實數部分和虛數部分都是浮點數
5.虛數部分必須有字尾j或J
類型轉換:
當我們在做運算時,如果兩個操作數都是同一種資料類型,那就沒必要進行類型轉換,
僅當兩個類型不一緻的情況下,Python才會去檢查一個操作數是否可以轉換為另一類型的操作數。
自動類型轉換:
無需編碼解決轉換問題。
基本規則:
将一個整型轉換為浮點型,隻需在整型後面加".0"
将一個非複數轉換為複數,隻需在非複數後面加"0j"
強制類型轉換:coerce()
coerce() Python内建函數用來實作強制類型轉換
示例:
1.整型與浮點的轉換
>>> coerce(1,1.1)
(1.0, 1.1)
2.長整型與浮點的轉換
>>> coerce(123L,0.1)
(123.0, 0.1)
3.整數與長整數的轉換
>>> coerce(1,2L)
(1L, 2L)
4.整數與複數的轉換
>>> coerce(1,1+1j)
((1+0j), (1+1j))