官术网_书友最值得收藏!

2.4 數據類型

Python 3中有6個標準的數據類型,即Number(數字)、String(字符串)、Sets(集合)、List(列表)、Tuple(元組)和Dictionary(字典)。下面分別介紹這6種數據類型的使用方法。

2.4.1 Number(數字)

Python 3支持int(整數)、float(浮點數)、bool(布爾值)、complex(復數)四種數字類型。

注意

在Python 2中是沒有bool(布爾值)的,它用數字0表示False,用1表示True。在Python 3中,把True和False定義成了關鍵字,但它們的值還是1和0,而且可以和數字相加。

1.int(整數)

下列是整數的案例:

        >>> a = 2147483647
        >>> a
        2147483647

可以使用十六進制數值來表示整數,十六進制整數的表示法是在數字之前加上0x,例如0x80000000、0x100000000L。如下例所示:

        >>>a=0x7FFFFFFF
        >>> a
        2147483647

2.float(浮點數)

浮點數的表示法可以使用小數點形式,也可以使用指數形式。指數符號可以使用字母e或是E,指數前可以使用+/-符號,也可以在指數數值前加上數值0;在整數前也可以加上數值0。下面舉例說明:

        3.14    10.    .001    1e100    3.14E-10    1e010    08.1

使用float()內置函數,可以將整數數據類型轉換成浮點數數據類型。例如:

        >>> float(5)
        5.0

3.bool(布爾值)

Python的布爾值包括True和False,它只和整數中的1和0有著對應的關系。例如:

        >>> True==1
        True
        >>> True==2
        False
        >>> False==0
        True
        >>> False==-1
        False

這里是利用==號判斷左右兩邊是否絕對相等。

4.complex(復數)

復數的表示法是使用雙精度浮點數來表示實數與虛數的部分,復數的符號可以使用字母j或是J。例如,下面是復數表示:

        1.5 + 0.5j    1J    2 + 1e100j    3.14e-10j

可以使用real與imag屬性分別取出復數的實數與虛數部分。例如:

        >>>a=1.5+0.5j
        >>>a.real
        1.5
        >>> a.imag
        0.5
        >>> a
        (1.5+0.5j)

可以使用complex(real, imag)函數,將real與imag兩個數值轉換成復數。real參數是復數的實數部分,imag參數是復數的虛數部分。例如:

        >>> complex(1.5,0.5)
        (1.5+0.5j)

數值之間可以通過運算符進行運算操作。例如:

        >>> 5 + 4       # 加法
        9
        >>> 4.3-2       # 減法
        2.3
        >>> 3 * 7      # 乘法
        21
        >>> 2/4         # 除法,得到一個浮點數
        0.5
        >>> 2//4        # 除法,得到一個整數
        0
        >>> 17 % 3      # 取余
        2
        >>> 2 ** 5    # 乘方
        32

在數字運算時,需要注意以下問題。

(1)數值的除法(/)總是返回一個浮點數,要獲取整數使用//操作符。

(2)在整數和浮點數混合計算時,Python會把整數轉換成為浮點數。

用戶可以將數值使用在函數內。例如:

        >>> round(12.32, 1)
        12.3

可以對數值進行比較。例如:

        >>>x = 2
        >>>0 < x < 5
        True

但是不可以對復數進行比較。例如:

        >>> 0.5 + 1.5j < 2j
        Traceback (most recent call last):
          File "<pyshell#48>", line 1, in <module>
            0.5 + 1.5j < 2j
        TypeError: unorderable types: complex() < complex()

用戶可以將數值做位移動(shifting)或是屏蔽(masking)。例如:

        >>>16 << 2
        64
        >>>30 & 0x1B
        26
        >>>2 | 5
        7
        >>>3 ^ 5
        6
        >>>~2
        -3

內置的type()函數可以用來查詢變量所指的對象類型。例如:

        >>>a, b, c, d = 20, 5.5, True, 4+3j
        >>> print(type(a), type(b), type(c), type(d))
        <class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

該案例就顯示了4個變量所對應的4種數據類型。

2.4.2 String(字符串)

字符串屬于序列類型(sequence type)。Python將字符串視為一連串的字符組合,例如字符串“Parrot”,在Python內部則是視為"P" "a" "r" "r" "o" "t" 6個字符的組合。第1個字符的索引值永遠是0,因此存取字符串“Parrot”的第1個字符“P”時使用"Parrot"[0],如下例所示:

        >>> "Parrot"[0]
        'P'
        >>> "Parrot"[1]
        'a'

在創建一個字符串時,可以將數個字符以單引號、雙引號或是三引號包含起來。例如:

        >>>a = 'Parrot'
        >>> a
        'Parrot'
        >>>a = "Parrot"
        >>>a
        'Parrot'
        >>>a = '''Parrot'''
        >>>a
        'Parrot'

注意

字符串開頭與結尾的引號要一致。

下面的案例將字符串開頭的引號使用雙引號,結尾的引號使用單引號:

        >>> a = "Parrot'
        Traceback (  File "<interactive input>", line 1
            a = "Parrot'
                     ^
        SyntaxError: invalid token

可見,當字符串開頭與結尾的引號不一致時,Python會顯示一個invalid token的錯誤提示信息。

2.4.3 Sets(集合)

Sets(集合)是一個無序不重復元素的集。它的主要功能是刪除重復元素和進行關系測試。創建集合時用大括號({})。例如:

        >>>student = {’王平’, ’楊華’, ’王平’, ’李玉’, ’劉天怡’}
        >>> print(student)                           # 刪除重復的
        {’王平’, ’楊華’, ’李玉’, ’劉天怡’}
        >>> ’李玉’ in student                      # 檢測成員
        True
        >>> ’楊平’ in student
        False

注意

如果要創建一個空集合,必須用set()。例如:

        >>>student = set()

2.4.4 List(列表)

List(列表)是Python中使用最頻繁的數據類型。列表可以實現大多數集合類的數據結構。列表中元素的類型可以不相同,它支持數字、字符串甚至可以包含列表(所謂嵌套)。列表是寫在方括號([])之間、用逗號分隔開的元素列表。

要創建一個列表對象,使用中括號[]來包含其元素。例如:

        >>> s = [1,2,3,4]

列表對象s共有4個元素,可以使用s[0]返回第1個元素,s[1]返回第2個元素,以此類推。如果索引值超出范圍,Python會拋出一個IndexError異常。例如:

        >>>s = [1,2,3,4]
        >>>s[0]
        1
        >>>s[1]
        2
        >>>s[2]
        3
        >>>s[3]
        4
        >>>s[4]
        Traceback (most recent call last):
          File "<pyshell#3>", line 1, in <module>
            s[4]
        IndexError: list index out of range

Python為訪問最后一個列表元素提供了一種特殊語法。通過將索引指定為-1,可以讓Python返回倒數第一個列表元素。例如:

        >>>s = [1,2,3,4]
        >>> s[-1]
        4

在不知道列表長度情況下,上述方法很實用。依次類推,索引-2表示倒數第二個列表元素。

2.4.5 Tuple(元組)

Tuple(元組)對象屬于序數對象,它是一群有序對象的集合,并且可以使用數字來做索引。元組對象與列表對象非常類似,其差別在于元組對象不可以新增、修改與刪除。要創建一個元組對象,使用小括號()來包含其元素。其語法為:

        variable = (element1, element2, ...)

也可以省略小括號(),直接將元素列出。

下面的例子創建一個元組對象,此元組對象有3個元素:1,2,3。

        >>>t=(1,2,3)
        >>> t
        (1, 2, 3)
        >>>t = 1,2,3
        >>>t
        (1, 2, 3)

與列表的索引一樣,元組索引也從0開始。例如:

        >>>t=(1,2,3)
        >>>t[0]
        1

2.4.6 Dictionary(字典)

Dictionary(字典)是Python內非常有用的數據類型。字典使用大括號{}將元素列出。元素由鍵值(key)與數值(value)所組成,中間以冒號(:)隔開。鍵值必須是字符串、數字或是元組,這些對象是不可變動的。數值則可以是任何數據類型。字典的元素排列并沒有一定的順序,可以使用鍵值來取得該元素。

創建字典的語法格式如下:

        字典變量={關鍵字1:值1,關鍵字2:值2, …}

注意

在同一個字典之內,關鍵字必須是互不相同的。

例如:

        >>>cla={’一班’: ’李平’, ’二班’: ’黃玉’ }
        >>> cla [’一班’]
        '李平’
        >>>cla [’二班’]
        '黃玉’
        >>>cla
        {’二班’: ’黃玉’, ’一班’: ’李平’}
主站蜘蛛池模板: 进贤县| 东丰县| 镇雄县| 邯郸县| 木里| 温宿县| 富民县| 长岛县| 红桥区| 腾冲县| 哈尔滨市| 东辽县| 谢通门县| 万盛区| 龙井市| 永和县| 长汀县| 金溪县| 华亭县| 浦江县| 庆城县| 木兰县| 茌平县| 吴堡县| 乌拉特后旗| 吉隆县| 绥滨县| 南乐县| 和静县| 德兴市| 武陟县| 大丰市| 仁化县| 浙江省| 奉新县| 平原县| 泰来县| 乌拉特前旗| 恭城| 田林县| 南丹县|