1. 程式人生 > >Python資料型別(4) 字串

Python資料型別(4) 字串

字串

字串(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.