- Python程序設計案例課堂
- 劉春茂
- 2146字
- 2020-11-28 15:11:22
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 {’二班’: ’黃玉’, ’一班’: ’李平’}
- 深入淺出Spring Boot 2.x
- INSTANT Django 1.5 Application Development Starter
- Drupal 8 Configuration Management
- TypeScript項目開發實戰
- Learning Apache Mahout Classification
- Scala Data Analysis Cookbook
- 智能手機APP UI設計與應用任務教程
- 基于SpringBoot實現:Java分布式中間件開發入門與實戰
- 自學Python:編程基礎、科學計算及數據分析(第2版)
- Learning VMware vSphere
- OpenCV 3計算機視覺:Python語言實現(原書第2版)
- C語言程序設計
- Maya Programming with Python Cookbook
- Web前端開發實戰教程(HTML5+CSS3+JavaScript)(微課版)
- .NET應用架構設計:原則、模式與實踐