天天看點

Python的數值類型

問題:

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))