Python資料型別(4) 字串
阿新 • • 發佈:2018-12-21
字串
字串(string)是一種不可變的序列物件。字串常量用引號定義,可以是單引號,雙引號,三引號,這三者沒有任何區別,但要成對使用。
字串的建立
>>> 'xyz' #單引號定義 'xyz' >>> "xyz" #雙引號定義 'xyz' >>> '''xyz''' #三引號(三個單引號連寫)定義 'xyz' >>> "what's this?" #對於一個含有單引號的字串,可以使用雙引號定義 "what's this?" >>> 'what's this?' #含有單引號的句子用單引號定義會報錯 File "<stdin>", line 1 'what's this?' ^ SyntaxError: invalid syntax >>> 'what\'s this?' #另一個解決方案是使用轉義字元 "what's this?" #字串較長時,可以在末尾新增“\”,表示續行 >>> 'bei\ ... xi\ #開頭三個點不是手動新增的,而是寫完上一行\ 回車後系統自動新增的 ... fen' 'beixifen' #如果字串更長時,可以用三引號括起來,這樣可以輸入包括換行符在內的任意字元。 >>> '''wo bu shi yi ... ge zhuan ye de ... cheng xu yuan''' 'wo bu shi yi\nge zhuan ye de\ncheng xu yuan'
字串的操作與簡單方法
由於字串是序列的一類,序列的通用操作:索引,分片,加,乘,成員檢測,求長度等不再介紹,參看前一篇博文:Python資料型別(3)序列的通用操作。
1、大小寫轉換
方法 | 說明 |
str.upper() | 將字串內的全部內容轉換為大寫字母 |
str.lower() | 將字串內的全部內容轉換為小寫字母 |
str.swapcase() | 大小字母形式的互換 |
str.capitalize() | 返回一個首字母大寫字串 |
str.title() | 將所有單詞的首字母大寫,其餘部分小寫 |
需要說明的是,由於字串是不可變序列,因此這些方法不會改變字串本身,而是生成了新的字串。
>>> a = 'Bei xi fen' >>> a 'Bei xi fen' >>> a.upper() #upper方法 'BEI XI FEN' >>> a 'Bei xi fen' #這裡我們可以看到,字串a本身是沒有改變的 >>> a.lower() #lower方法 'bei xi fen' >>> a.swapcase() #swapcase方法 'bEI XI FEN' >>> a.title() #title方法 'Bei Xi Fen'
2、從字串中刪除字串前或後指定字元strip
str.strip([char]),char為待刪除字元,若省缺則為空格。
與之類似的是,rstrip和lstrip,前者從字串末尾刪除,後者從字串開始刪除。
>>> a = ' bei xi fen! '
>>> a.strip()
'bei xi fen!'
>>> a.rstrip()
' bei xi fen!'
>>> a.lstrip()
'bei xi fen! '
3、查詢子串的方法find
方法 | 說明 |
str.find([str1]) | 從左至右檢查str中str1是否存在,存在則返回第一個出現的位置,不存在則返回-1 |
str.rfing([str1]) | 從右至左檢查str中str1是否存在,存在則返回第一個出現的位置,不存在則返回-1 |
>>> a = 'beixifen'
>>> a.find('i') #從左往右第一個i
2
>>> a.rfind('i') #從右往左第一個i
4
4、字串的替換replace
str.replace(原串,新串),將str中全部‘原串’用‘新串’替換。
>>> a = 'beiduofen'
>>> a.replace('duo','xi')
'beixifen'
>>> a
'beiduofen' #這裡再次強調,替換時並沒有改變原來的字串,只是生成了新的字串
5、分隔字串split
split將字串分割成若干字串,它的返回只值一個列表
格式:str.split(sep,[maxsplit]),sep為指定的分隔符,預設為空格;maxsplit指定返回元素最大值索引值(元素個數減一)。
>>> a = 'bei xi fen bu tai gua'
>>> a.split() #省缺則以空格為分隔符
['bei', 'xi', 'fen', 'bu', 'tai', 'gua']
>>> a.split(' ',3) #手動新增分隔符與分隔次數
['bei', 'xi', 'fen', 'bu tai gua']
6、 組合字串join
join是split的相反操作
格式:sep.join()
>>> ' '.join('abcdef') #sep為空格
'a b c d e f'
>>> ' '.join(['bei','xi','fen'])
'bei xi fen'
未完待續。。。。。
參考文獻:秦穎.Python實用教程.北京:清華大學出版社,2016.