前言:
在前面的筆記裡,幾乎都有用到 string 型別的資料,像是 print() 函式裡直接寫的內容,都是 string 型別,可見 string 型別有多麼常用。
那事不宜遲的趕緊認識 string 吧。
閱讀時間:10 分鐘

python 的 string 表示
python 的 string 資料可以使用單引號(‘abc’)或是雙引號(“abc”)包起來。並且 python 裡沒有只針對一個文字或是符號使用的資料型別,即便是 ‘a’,也是 string。
python 還有一種長字串的用法,是使用三個雙引號(“””abc”””),這個特殊用法允許 python 能夠換行。
什麼是換行?
在編輯器裡會看到左方有數字,這就是行(line),行可以為「提示」使用,當發生程式錯誤時,編輯器會告訴你在第幾行發生了問題。
換行的意思就是程式或是資料使用了多行進行表達。


string 的運算
想不到吧?居然連字串都可以做運算。
運算 | 範例 | 說明 | 結果 |
---|---|---|---|
+ | “hello” + ‘world’ | 連接字串 | helloworld |
* | ‘hello’ * 2 | 重複字串n次 | hellohello |
[ int ] | ‘hello'[4] | 取得字串中index為4的字元 | o |
[ int : int ] | “hello”[2:4] | 取得字串中從index為2開始到index為4之前的字元 | ll |
其中的 [ int ] 與 [ int : int ] 是 python 中 slice 的一種應用。slice 可以應用在所有的多資料型別。
關於更多 slice,之後會額外寫一篇文章。
index是什麼?
index 中文稱為目錄。是像編號一樣的東西,在大多程式語言裡,index 從0開始計算。例如:”hello, world!” ,其 index 為 5 的內容是 “,”,可以使用”hello, world!”[5] 來指定該內容。
string 的方法
string 如果以物件來看待,會覺得非常的特別,因為你不需要去呼叫它的屬性,就能夠直接使用資料,這個特別之處也是基礎型別才有的。
前往 python 的官方文件,會看到 string 擁有一堆的方法,這些方法對 string 有哪些影響呢?這麼多東西肯定記不起來的,所以我會建議大家不要去記清楚每個方法如何使用,而是去記擁有什麼樣的功能。記憶功能的目的是,去提醒你擁有資源能夠使用在你的程式上,真的需要使用時再去查詢就好,而重要的方法就會在一次次的查詢裡被牢牢地記下來。
所以來知道 string 的方法影響什麼才是更重要的。
string 的方法,有這些能力:
- 改變字串的大小寫
- 查詢內容是否在字串裡
- 字串的編碼
- 字串的長度
- 字串的運算
- 字串的分割
其中我個人覺得常用的是查詢內容以及字串分割,所以就來介紹一兩個相關的方法。
find() 方法
find() 方法提供尋找指定內容是否為字串的子字串。
子字串是什麼?
類似分類與子分類的關係,子字串被包含在字串裡,是字串的一部分。例如:”hello, world!” 擁有子字串 “llo, w”
如何使用?
我們將欲查詢的內容填入()裡,如果存在該子字串,則會回傳子字串開頭的 index,如果沒有找到該子字串,則會回傳 -1。

spilt() 方法
有時候我們會收到由許多資料組成的一個字串,例如:”h,e,l,l,o”。如果需要將他們拆為一個個資料的話,感覺就很麻煩,於是 python 提供 spilt() 來將其分開。
如何使用?
將想要分開的依據內容填入()裡,如以下做法。最後我們會得到一個 list 型別的資料。

結語
關於 string 還有一個特色,那就是 string is one of list 的說法,可以將 資料型態 – list 的使用用在 string 上,這個會留到之後的 list 做補充。
下一個要筆記的資料型別是 list and tuple。
This article was written by 洋洋. Any similarities to other works are purely coincidental.