字符串編碼轉換
在 python3.x 中,默認採用編碼格式為UTF-8
在 python 中,有兩種常用的字符串類型,為bytes 和 str。str(Unicode字符)、bytes(二進制數據)
str(在內存中以Unicode表示)
如果在網路上傳輸,或者保存進硬碟,就需要把 str 傳換成 bytes 類型
使用encode()函數解編碼
1 | str.encode([encoding = 'utf8'][, error = 'strict']) |
str : 表示要轉換的字符串
encoding=’utf8’ : 可選參數,用於指定進行轉碼時採用的字符編碼
error = ‘strict’ : 用於指定錯誤的處理方式,有ignore, replace, xmlcharrefreplace……等,strict為默認值
1 | ex = "人生苦短,我愛Python" |
使用decode()函數解碼
二進制轉換回字符串
1 | ex = b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe6\x84\x9bPython' |
字符串常用操作
在Python的開發過程中,很多時候都要對字符串做相應的處理,比如拼接、擷取、格式化……
拼接字符串
1 | fir = "人生苦短" |
一定要字串型態加上字串型態才可以拼起來
1 | fir = "人生苦短" |
所以說,一定要轉換成相同的型態
計算字符串長度
在Python中,在默認的情況下,一個漢字佔3個字節,數字及其它基本上都佔1個字節
使用len()函數計算長度
1 | str_test = "人生苦短,我愛Python" |
然而,在默認的情況下,使用len()函數,所有字符都認為是1字節
換成encode()函數
1 | str_test = "人生苦短,我愛Python" |
擷取字符串
用slice(切片)的方式
1 | str_test = 'abcdefg' |
如果在超出範圍的情況下,可以用try……except IndexError解決
分割字符串
1 | str.split(sep, maxsplit) |
用於指定分割字符串,可以包含多個字符
可選參數,用於指定分割的次數,如果不指定或者為-1,則分割次數沒有限制,否則返回結果列表元素各數最多為maxsplit+1
1 | str_test = "abc \ndefg" |
這是考試題目最常出現的
1 | # 在某些情況下,需要分開進行輸入 |
合併字符串
1 | str_new = string.join(iterable) |
使用join
進行合併
1 | str_test = ["a", "b", "c"] |
檢索字符串
使用count()函數
1 | str_test = "aaaabb" |
使用find()函數
1 | # 返回首次出現的下標 |
使用index()函數
1 | # 返回首次出現的下標 |
使用startwith()函數
1 | # 確認開頭首字母 |
使用endswith()函數
1 | # 確認末尾字母 |
字母大小寫轉換
使用lower()函數全部轉小寫
1 | str_test = "wsdjahAKSJD" |
使用upper()函數全部轉大寫
1 | str_test = "wsdjahAKSJD" |
去除字符串中的空格和特殊字符
可以使用strip()函數去除前後的空格
當然還有lstrip()和rstrip()……
這裡的特殊字符是指\t、\r、\n等
使用strip()函數
1 | # 掐頭去尾 |
lstrip()與rstrip()的概念一樣
1 | # l => left |
格式化字符串
使用format()函數
1 | # str.format(args) |