Python 速查手冊

單元 2 - 基本內建型態

基本內建型態是 Python 中可以直接拿來運用的資料型態 (data type) ,依種類可分為真假值、數字、序列 (sequence) 及字典 (dictionary) 。

真假值是程式 (program) 中條件 (condition) 判斷的依據,字面常數 (literal) 有 TureFalse ,另有個表示什麼都沒有的字面常數 None ,這在條件中也會回傳 False

以下程式示範直接在 if 陳述中使用真假值

if True:
    print("True")

if None:
    print("False")
else:
    print("None")
    
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:type01.py
# 功能:示範使用真假值
# 作者:張凱慶

於命令列執行以上程式,結果如下

$ python3 type01.py
True
None
$

程式中主要計算的資料型態就是數字, Python 中的數字有不帶小數點的整數 (integer) ,帶小數點的浮點數 (floating-point number) ,另外也可以直接計算數學上的複數 (complex number) 。

以下程式示範直接在命令列印出數字

print(345)
print(6.75)
print(1 + 2J)
    
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:type02.py
# 功能:示範使用數字
# 作者:張凱慶

於命令列執行以上程式,結果如下

$ python3 type02.py
345
6.75
(1+2j)
$

序列為 Python 中主要運用資料結構的通稱,序列包括可變的串列 (list) 及不可變的字串 (string) 及序對 (tuple) 等,可變及不可變的差別在於能否更換元素值。

以下程式示範用 for 迴圈印出串列中的所有元素

a = [1, 2, "3", 4.0]
for i in a:
    print(i)
    
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:type03.py
# 功能:示範用 for 迴圈處理串列元素
# 作者:張凱慶

於命令列執行以上程式,結果如下

$ python3 type03.py
1
2
3
4.0
$

下面來看到序列的基本操作,利用關鍵字 in 可以判斷 s 中是否有 x ,加上 not 變成 not in ,就可判斷 s 中是否沒有 x

s = [1, 2, 3, 4]
x = 0
if x in s:
    print("x in s")
if x not in s:
    print("x not in s")
    
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:type04.py
# 功能:示範用序列的基本操作
# 作者:張凱慶

於命令列執行以上程式,結果如下

$ python3 type04.py
x not in s
$

利用加號,可以把兩個序列連接起來,乘號接整數,這可以複製序列的元素值,使序列裡的元素總量加倍

s = [1, 2]
t = [3, 4]
print(s + t)
n = 3
print(s * n)
print(n * s)
    
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:type05.py
# 功能:示範序列的基本操作
# 作者:張凱慶

於命令列執行以上程式,結果如下

$ python3 type05.py
[1, 2, 3, 4]
[1, 2, 1, 2, 1, 2]
[1, 2, 1, 2, 1, 2]
$

利用中括弧裡頭放索引值 i 可存取序列的元素,加上冒號及多一個索引值 j 則是取得 ij 之間的子序列,如果再加上第二個冒號及第三個參數 k ,這個參數 k 表示間隔數,也就是 ij 之間以 k 為間隔,所取得的所有元素構成的子序列

s = [1, 2, 3, 4, 5, 6, 7, 8, 9]
i = 2
print(s[i])
j = 8
print(s[i:j])
k = 2
print(s[i:j:k])
    
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:type06.py
# 功能:示範序列的基本操作
# 作者:張凱慶

於命令列執行以上程式,結果如下

$ python3 type06.py
3
[3, 4, 5, 6, 7, 8]
[3, 5, 7]
$
序列的索引值從 0 開始,而後依序遞增 1

內建函數 (built-in function) 中有三個可操作序列, len() 回傳序列的元素總數, min() 回傳序列中的最小值, max() 則回傳序列中的最大值

s = [1, 2, 3]
print(len(s))
print(min(s))
print(max(s))
    
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:type07.py
# 功能:示範序列的基本操作
# 作者:張凱慶

於命令列執行以上程式,結果如下

$ python3 type07.py
3
1
3
$

由於序列都是物件 (object) ,因此都有方法 (method) 可用, index() 方法回傳 xs 中首次出現的索引值,第二個參數 (parameter) i 表示找索引值 i 之後的元素,第三個參數 j 則表示找 ij 之間的元素,至於 count() 方法回傳 xs 中的總數

s = [1, 1, 2, 1]
x = 1
print(s.index(x))
i = 2
print(s.index(x, i))
j = 4
print(s.index(x, i, j))
print(s.count(x))
    
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:type08.py
# 功能:示範序列的基本操作
# 作者:張凱慶

於命令列執行以上程式,結果如下

$ python3 type08.py
0
3
3
3
$

字典是配對的資料型態,也可以把字典想像成把索引值換成自訂 key 的串列,每個 key 都是自行設置的,如此更能符合 value 的資料用途。

d = {1:2, "3":[4]}
print(d[1])
print(d["3"])
    
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:type09.py
# 功能:示範序列的基本操作
# 作者:張凱慶

於命令列執行以上程式,結果如下

$ python3 type09.py
2
[4]
$

在單元 2 中會繼續深入討論以下各種主題

上一頁: 1.8 識別字命名規則
Python 速查手冊 - 目錄
下一頁: 2.1 變數與物件
回 Python 教材首頁