基本內建型態是 Python 中可以直接拿來運用的資料型態 (data type) ,依種類可分為真假值、數字、序列 (sequence) 及字典 (dictionary) 。
真假值是程式 (program) 中條件 (condition) 判斷的依據,字面常數 (literal) 有 Ture 及 False ,另有個表示什麼都沒有的字面常數 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 則是取得 i 到 j 之間的子序列,如果再加上第二個冒號及第三個參數 k ,這個參數 k 表示間隔數,也就是 i 到 j 之間以 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] |
$ |
內建函數 (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() 方法回傳 x 在 s 中首次出現的索引值,第二個參數 (parameter) i 表示找索引值 i 之後的元素,第三個參數 j 則表示找 i 到 j 之間的元素,至於 count() 方法回傳 x 在 s 中的總數
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 中會繼續深入討論以下各種主題
相關教學影片