字串 (string) 的字面常數 (literal) 為單引號、雙引號或連續三個引號圍起來的內容,其中連續三個引號被稱為三引號字串,三引號字串用為文件字串 (docstring) ,至於單引號及雙引號的作用一樣,單引號字串中可以直接使用雙引號當字元,同樣的,雙引號字串中也可以直接使用單引號當字元,此外,利用反斜線加上指定英文字母可以表示跳脫序列 (escape sequence) ,這些跳脫序列表示一些不可見字元或 Unicode 符號
print("Hello world!")
print("she's story")
print('輕輕的我走了\n正如我輕輕的來\n')
print("""文件字串""")
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:str01.py
# 功能:示範各種字串
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 str01.py |
Hello world! |
she's story |
輕輕的我走了 |
正如我輕輕的來 |
文件字串 |
$ |
這裡可以看到跳脫序列的完整列表,反斜線加上反斜線可在輸出的時候表示反斜線,其餘各有不同的用途,例如反斜線之後加上小寫英文字母 n 表示新行符號,反斜線之後加上英文小寫字母 t 表示水平的 tab 符號等等。
跳脫序列 | 功能 |
---|---|
\\ | 顯示反斜線。 |
\' | 顯示單引號。 |
\" | 顯示雙引號。 |
\a | ASCII 警示音。 |
\b | ASCII 退格鍵。 |
\f | ASCII 換頁符號。 |
\n | ASCII 換行符號。 |
\r | ASCII 輸入鍵。 |
\t | ASCII 水平 tab 鍵。 |
\v | ASCII 垂直 tab 鍵。 |
\ooo | 八進位 Unicode 符號。 |
\xhh | 十六進位 Unicode 符號。 |
很多情況都會用到字串型態,基本上所有需要文字的地方都需要字串,例如 GUI 中選單、按鈕的文字,或是網頁中顯示的文字,如果把網頁中的文字放到 Python 程式中來處理的話,這些文字也需要先轉換成字串。
字串是不可變的資料型態 (data type) ,不可變的意思是說不能改變字串中的元素值,雖說是不能改變,但可以重新指派,所謂重新指派是指將調整後的字串重新指派給原字串變數 (variable) 。
建立字串除了字面常數外,也可用字串的建構子 (constructor) str() ,注意這裡三個英文字母都小寫,所以字串的建構子也被歸類到內建函數 (built-in function) 中
s = str(123)
print(s)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:str02.py
# 功能:示範字串的建構子
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 str02.py |
123 |
$ |
字串屬於序列 (sequence) 的一種,因此很多操作都跟序列一樣,這裡要注意用索引值可以取得子字串,但不能改變子字串的內容。
a = "a"
b = "b"
a += b
print(a)
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:str03.py
# 功能:示範字串的建構子
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 str03.py |
ab |
$ |
序列型態有下表的操作模式
模式 | 說明 |
---|---|
x in s | 判斷 x 是否在 s 中。 |
x not in s | 判斷 x 是否不在 s 中。 |
s + x | 將 x 附加在 s 之後。 |
s * n | 將 s 中的元素複製 n 倍。 |
s[i] | 取得 s 中索引值為 i 的元素。 |
s[i:j] | 取得 s 中索引值 i 到 j 之間的元素。 |
s[i:j:k] | 取得 s 中索引值 i 到 j 之間以 k 為間隔的元素。 |
len(s) | 回傳 s 的的元素總數。 |
min(s) | 回傳 s 中的最小值。 |
max(s) | 回傳 s 中的最大值。 |
字串也是物件 (object) ,有超過 40 個方法 (method) 可用,這裡列舉一些處理英文字母的方法,例如 upper() 回傳將原字串都改為大寫字母的新字串,至於還有些 is 開頭的方法,這些是判斷 is 後所接英文單字的情況,例如 isdigit() 方法是判斷原字串中是否有數字,結果回傳真假值
- str.capitalize()
- str.upper()
- str.lower()
- str.isdigit()
- str.islower()
- str.isspace()
- str.isupper()
關於字串相關方法的詳細解說,請參考 10.4 字串 str 。
相關教學影片