參考書目: Python自動化的樂趣: 搞定重複瑣碎&單調無聊的工作
📝 字串的處理
📓 雙引號
字串可以使用雙引號 " 括住字串的起始和結尾,用法和單引號一樣。用雙引號的好處之一是在字串中可以使用單引號字元。
1 | sentence = "This is Carol's pencil." |
但是,字串中需要有單引號和雙引號同時存在時,就要用到轉義字元。
📓 轉義字元
轉義字元(escape character),可以讓我們輸入一些不能直接放在字串裡的字元。轉義字元就是將一條反斜線(\
),放在想要輸入的特殊字元之前,兩個成一組視為一個字元。例如,單引號是以 \'
表示。如此一來便可以在字串中同時輸入單/雙引號。
轉義字元 | 實際字元 |
---|---|
\' |
單引號 |
\" |
雙引號 |
\t |
定位空格 |
\n |
換行 |
\\ |
反斜線 |
1 | print("Hi Kevin!\nHow are you?\nI\'m always here for you.") |
📓 原始字串
在字串開頭的引號之前加上 r ,這個字串就會變成"原始字串(raw string)"。原始字串會忽略掉引號內的所有轉義字元,印出字串時,會連同轉義字元一起印出。
1 | print(r"This is Carol\'s pencil.") |
📓 多行字串
儘管可以使用\n
轉義字元讓字串換行,但三重引號的多行字串更加好用。Python 中的多行字串是以三個單或雙引號包住,在三重引號包住範圍內的所有引號、定位空格等轉義字元,都會被視為字串的一部份,Python 的程式碼縮排規則不適用於多行字串。
1 | print('''Dear John, |
📓 多行註解
1 | """ |
📝 字串索引與切片
字串和串列相同都能透過索引和切片取得想要的部分。以字串Hello World!
為例,一共有12個字元(包含空格),索引就是 0 ~ 11。
1 | sentence = "Hello World!" |
字串切片並不會影響原有字串。
📝 in 和 not in 運算子
如同串列一樣,字串也能夠使用 in、not in 運算子,比對特定的字元或字串是否存在,運算後回傳布林值 True 或 False。
1 | print('Hello' in 'Hello World') |
📝 字串的方法(部分)
📓 upper()、lower()
- upper(),將字串中的所有字母轉成大寫並回傳字串
- lower(),將字串中的所有字母轉成小寫並回傳字串
1 | sentence = 'Hello World!' |
📓 isupper()、islower()
-
isupper(),若字串中的所有字母皆為大寫則回傳 True,否則回傳 False
-
islower(),若字串中的所有字母皆為小寫則回傳 True,否則回傳 False
1 | sentence = 'Hello World!' |
📓 字串比對方法 (isX)
-
isalpha(),字串中只有字母且不是空字串則回傳 True,否則回傳 False
-
isalnum(),字串中只有字母和數字且不是空字串則回傳 True,否則回傳 False
-
isdecimal(),字串中只有數字且不是空字串則回傳 True,否則回傳 False
-
isspace(),字串中只有空格、定位空格和換行且不是空字串則回傳 True,否則回傳 False
1 | print('hello'.isalpha()) |
📓 startswith()、endswith()
-
startswith(),傳入要比對的字元,若字串以該字元為開頭,則回傳 True,否則回傳 False
-
endswith(),傳入要比對的字元,若字串以該字元為結尾,則回傳 True,否則回傳 False
1 | print('Hello World!'.startswith('Hello')) |
📓 join()、split()
- join(),以某字串呼叫 join() 方法並將串列傳入後,會返回一個將某字串與串列中的內容連接起來的新字串
1 | print(','.join(['fish','puppy','kitty'])) |
- split(),功能與 join() 相反,以字串呼叫後,傳回以空格(預設)作為分割字元的串列。另外,亦可傳入特定的分割字元,指定該如何切割字串到串列中(分割字元不會被放到串列中)
1 | print('Her name is Shelly Wang.'.split()) |
📓 rjust()、ljust()、center()
-
rjust(),傳入引數作為靠右對齊時要插入的左方空格和原字串加起來的長度
-
ljust(),傳入引數作為靠左對齊時要插入的右方空格和原字串加起來的長度
-
center(),傳入引數作為置中對齊時要插入的左右空格和原字串加起來的長度
1 | print('Hello'.rjust(10)) |
1 | print('Hello'.rjust(10,'*')) |
上述三個方法都可以再傳入第二個引數,指定要用什麼字元填補空格。
📓 strip()、rstrip()、lstrip()
-
strip(),刪除字串左右兩邊的多餘空格
-
rstrip(),刪除字串右邊的多餘空格
-
lstrip(),刪除字串左邊的多餘空格
1 | sentence = ' Hello World! ' |
1 | sentence = 'LoremBaconInpusumRoroLoremLorem' |
這個方法亦可傳入引數,指定要刪除的左右字元。
📝 pyperclip 模組
pyperclip 模組有 copy() 和 paste() 方法,可向電腦系統中的剪貼簿傳送或接收文字。
pyperclip 不是 python 內建的模組,要先安裝才能使用。
1 | import pyperclip |