前面介紹了 Accumulation 和 Function,這兩個都是程式裡負責做事情的工具,例如
print()
/type()
/input()
) 讓我們體驗到 Python 的方便性、int
/string
/range
) 讓我們認識 Python 組織語言的方式、+
/-
/*
/%
) 能有效利用數字、True
/False
) 是貼近電腦判斷事物的根源、for
/while
) 可以重複執行指令、if
/else
/elif
) 讓程式有判斷能力、import ...
) 可以使用其他地方來的程式碼、def ...()
) 讓程式可以被重複使用、ooo.xxx
) 讓我們知道 type 都有些支援的 funcitons、=
) 是使用各種 type 的 variable 的起點程式的運作建立在這些東西之上,也幾乎所有程式語言都有上述的東西們,剩下的就是讓事情更簡單的東西囉
接下來幾章我們來講一些 type 的細項吧
比之前簡單些囉
資工用語我們會說接下來的東西算是「資料結構」,也就是探討儲存和使用資料的各種形式與手段。
所謂資料(data) ,就是各式各樣的 variable,有些是可能是 string 也有些可能是 int 或各種 type,這些資料如果全部都放在個別的 variable 裡,不只浪費記憶體空間,取得方式還很有限(只能從叫 variable name 來拿到)。
這邊我們來進一步探討 string 和 tuple~
每一個 string 都有自己的長度
透過 len() 就可以得知
試試
得到
11
這邊可以發現空白鍵也算一格喔
String 也可以相加,試試
接著來看一個寫程式很重要的概念 index
顧名思義,索引的意思
也就是電腦在讀資料時,幫它們編號的行為
Index 用中括號[]
表示,從零開始
試試
另外,index 也有負的,試試
表示第a個字元到第b個字元時,我們會用冒號來表示
試試下面兩個
除此之外,加入第三個變數則表示間距(很少用)
試試
像前面介紹過的 method,String 本身就有內建很多功能了,
String methods
除了介紹過的 .islower()
、.isnumeric()
等,也可以試試下面
雖然,通常,我個人會用的只有 .replace()
接下來講一個重要的資料觀念,程式語言中拿來存資料的type有很多種,
有些存了之後可以更改,有些則不行
可以改的叫做 Mutable
不能改的叫做 Immutable
String 就是有名的 immutable 例子
試試以下
我們得到
Error
乍看之下,程式碼想要將myString的第一個字母改成J,
但這是行不通的,因為一旦宣告,所有string都不能再更動
這時候,如果想要得到上面程式碼的效果,就必須使用下面方式
myString
是原本的 string
myString2
是新的 string
既然 string 是可以被 +
起來的,
那麼可以直接將新的字首加上原本的字母們,就可以達到期望的效果嘍
之前已經學過if 和 for loop 還有 function,
下面例子將三者結合,提供了string的新玩法
其實要 loop through 一個 string 不需要像上面一樣麻煩,可以改寫成下面
至於要用哪一種,就看狀況囉
接著,介紹另一個資料型態,tuple
Tuple 是另一個 immutable type
以數個值在括號內,以逗號區隔組成
其實我們在一個Function return時,直接用逗號return兩個值的行為,就是在製造tuple
試試
(5, 'a')
Tuple 不限內容物的 type,可以 tuple 裝在 tuple 裡,
也可以進行乘法
試試
20
(5, 5, 5, 5)
由此可知,tuple 的特性
Additional Readings
chapter 9 strings https://runestone.academy/ns/books/published/thinkcspy/Strings/toctree.html
Tuples and Mutability https://runestone.academy/ns/books/published/thinkcspy/Lists/TuplesandMutability.html